anchor.diff:        CCode
     end.
   
  -put_unsafe_dynamic_int(NewOffset, Src, Base, Offset, SizeReg, CCode, Aligned, 
  -		       LittleEndian, TrueLblName) ->
  -  {Init, End, UntaggedSrc} = make_init_end(Src, TrueLblName),
  -  case Aligned of
  -    true ->
  -      case LittleEndian of
  -	true ->
  -	  Init ++
  -	    copy_int_little(Base, Offset, NewOffset, SizeReg, UntaggedSrc) ++
  -	    End;
  -	false ->
  -	  Init ++
  -	    copy_int_big(Base, Offset, NewOffset, SizeReg, UntaggedSrc) ++
  -	    End
  -	end;
  -    false ->
  -      CCode
  -  end.
  -
  -
   %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   %%
   %% Help functions used by the above
   %%
   %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   
  -make_init_end(Src, CCode, TrueLblName) ->
  +make_init_end(Src, CCode, false, TrueLblName) ->
     [CLbl, SuccessLbl] = create_lbls(2),
     [UntaggedSrc] = create_regs(1),
     Init = [hipe_tagscheme:test_fixnum(Src, hipe_rtl:label_name(SuccessLbl),
  
positive.code: 	    end;
  
  	  {unsafe_bs_put_integer, Size, Flags, ConstInfo} ->
  	     case is_illegal_const(Size) of
  	      true ->
  		[hipe_rtl:mk_goto(FalseLblName)];
  	      false ->
  		 Aligned = aligned(Flags),
  		 LittleEndian = littleendian(Flags),
  		 [NewOffset] = get_real(Dst),
  		 case ConstInfo of
  		   fail ->
  		     [hipe_rtl:mk_goto(FalseLblName)];
  		   _ ->
  		     case Args of
  		       [Src, Base, Offset] ->
  			 CCode = static_int_c_code(NewOffset, Src,
  						   Base, Offset, Size,
  						   Flags, TrueLblName,
  						   FalseLblName),
  			 put_unsafe_static_int(NewOffset, Src, Base,
  					       Offset, Size,
  					       CCode, Aligned, LittleEndian,
  					       TrueLblName);
  		       [Src, Bits, Base, Offset] ->
  			 {SizeCode, SizeReg} =
  			   hipe_rtl_binary:make_size(Size, Bits,
  						     SystemLimitLblName,
  						     FalseLblName),
  			 CCode = int_c_code(NewOffset, Src, Base,
  					    Offset, SizeReg, Flags,
  					    TrueLblName, FalseLblName),
  			 InCode =
  			   put_unsafe_dynamic_int(NewOffset, Src, Base,
  						  Offset, SizeReg, CCode,
  						  Aligned, LittleEndian,
  						  TrueLblName),
  			 SizeCode ++ InCode
  		     end
  		 end
  	     end;
  
  	  bs_utf8_size ->
  	    case Dst of
  
negative.code: 			       TrueLblName, FalseLblName)]
  	end,
        {Code, ConstTab}
    end.
  
  %% Common implementation of bs_put_integer and unsafe_bs_put_integer
  do_bs_put_integer(Dst, Args, Size, Flags, ConstInfo, SrcUnsafe,
  		  TrueLblName, FalseLblName, SystemLimitLblName) ->
    case is_illegal_const(Size) of
      true ->
        [hipe_rtl:mk_goto(FalseLblName)];
      false ->
        Aligned = aligned(Flags),
        LittleEndian = littleendian(Flags),
        [NewOffset] = get_real(Dst),
        case ConstInfo of
  	fail ->
  	  [hipe_rtl:mk_goto(FalseLblName)];
  	_ ->
  	  case Args of
  	    [Src, Base, Offset] ->
  	      CCode = static_int_c_code(NewOffset, Src, Base, Offset, Size,
  					Flags, TrueLblName, FalseLblName),
  	      put_static_int(NewOffset, Src, Base, Offset, Size, CCode, Aligned,
  			     LittleEndian, SrcUnsafe, TrueLblName);
  	    [Src, Bits, Base, Offset] ->
  	      {SizeCode, SizeReg} =
  		hipe_rtl_binary:make_size(Size, Bits, SystemLimitLblName,
  					  FalseLblName),
  	      CCode = int_c_code(NewOffset, Src, Base, Offset, SizeReg, Flags,
  				 TrueLblName, FalseLblName),
  	      InCode = put_dynamic_int(NewOffset, Src, Base, Offset, SizeReg,
  				       CCode, Aligned, LittleEndian, SrcUnsafe,
  				       TrueLblName),
  	      SizeCode ++ InCode
  	  end
        end
    end.
  
  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  