node/lib/metasm/metasm/cpu/x86_64/compile_c.rb
# takes an argument, if the argument is an integer that does not fit in an i32, moves it to a temp reg
# the reg is unused, so use this only right when generating the offending instr (eg cmp, add..)
takes an argument, if the argument is an integer that does not fit in an i32, moves it to a temp reg
the reg is unused, so use this only right when generating the offending instr
takes an argument if the argument is an integer that does not fit in an i32 moves it to a temp reg the reg is unused so use this only right when generating the offending instr
def i_to_i32(v)
		if v.kind_of? Expression and i = v.reduce and i.kind_of?(Integer)
			i &= 0xffff_ffff_ffff_ffff
			if i <= 0x7fff_ffff
			elsif i >= (1<<64)-0x8000_0000
				v = Expression[Expression.make_signed(i, 64)]
			else
				v = make_volatile(v, C::BaseType.new(:int))
				unuse v
			end
		end
		v
	end
def i_to_i32 ( v ) if v . kind_of? Expression and i = v . reduce and i . kind_of? ( Integer ) i &= 0xffff_ffff_ffff_ffff if i <= 0x7fff_ffff elsif i >= ( 1 << 64 ) - 0x8000_0000 v = Expression [ Expression . make_signed ( i , 64 ) ] else v = make_volatile ( v , C :: BaseType . new ( :int ) ) unuse v end end v end
takes an argument, if the argument is an integer that does not fit in an i32, moves it to a temp reg
the reg is unused, so use this only right when generating the offending instr (eg cmp, add..)
takes an argument if the argument is an integer that does not fit in an i32 moves it to a temp reg the reg is unused so use this only right when generating the offending instr ( eg cmp add .. )
v