* fixed location.size for length node and x86_64 mul node

git-svn-id: trunk@9464 -
This commit is contained in:
Jonas Maebe 2007-12-15 19:27:24 +00:00
parent 69c97f3ac6
commit 146b3d8bf3
2 changed files with 4 additions and 3 deletions

View File

@ -252,7 +252,7 @@ implementation
hregister : tregister;
begin
if inlinenumber=in_sizeof_x then
location_reset(location,LOC_REGISTER,OS_INT)
location_reset(location,LOC_REGISTER,def_cgsize(resultdef))
else
location_reset(location,LOC_REGISTER,OS_ADDR);
{ for both cases load vmt }
@ -355,7 +355,7 @@ implementation
if is_widestring(left.resultdef) then
cg.a_op_const_reg(current_asmdata.CurrAsmList,OP_SHR,OS_INT,1,hregister);
cg.a_label(current_asmdata.CurrAsmList,lengthlab);
location_reset(location,LOC_REGISTER,OS_INT);
location_reset(location,LOC_REGISTER,def_cgsize(resultdef));
location.register:=hregister;
end;
end;

View File

@ -38,6 +38,7 @@ interface
uses
globtype,globals,
aasmbase,aasmtai,aasmdata,
defutil,
cgbase,cgutils,cga,cgobj,
tgobj;
@ -56,7 +57,7 @@ interface
pass_left_right;
{ The location.register will be filled in later (JM) }
location_reset(location,LOC_REGISTER,OS_INT);
location_reset(location,LOC_REGISTER,def_cgsize(resultdef));
{ Mul supports registers and references, so if not register/reference,
load the location into a register}
use_ref:=false;