* fixed bug in location_force_reg32() when converting smaller values to

64 bit locations
  * use cg.op_const_reg_reg() instead of a move and then cg.op_const_reg()
    in location_force_reg32()
This commit is contained in:
Jonas Maebe 2002-07-28 15:59:57 +00:00
parent 6bd0424826
commit 75d8e42d85

View File

@ -227,7 +227,10 @@ implementation
begin
{ load a smaller size to OS_64 }
if l.loc=LOC_REGISTER then
hregister:=rg.makeregsize(l.registerlow,OS_INT)
begin
hregister:=rg.makeregsize(l.registerlow,OS_INT);
cg.a_load_reg_reg(list,l.size,l.registerlow,hregister);
end
else
hregister:=rg.getregisterint(list);
{ load value in low register }
@ -261,8 +264,8 @@ implementation
end
else
begin
cg.a_load_reg_reg(list,OS_32,hregister,hregisterhi);
cg.a_op_const_reg(list,OP_SAR,31,hregisterhi);
cg.a_op_const_reg_reg(list,OP_SAR,OS_32,31,hregister,
hregisterhi);
end;
end
else
@ -1625,7 +1628,13 @@ implementation
end.
{
$Log$
Revision 1.26 2002-07-27 19:53:51 jonas
Revision 1.27 2002-07-28 15:59:57 jonas
* fixed bug in location_force_reg32() when converting smaller values to
64 bit locations
* use cg.op_const_reg_reg() instead of a move and then cg.op_const_reg()
in location_force_reg32()
Revision 1.26 2002/07/27 19:53:51 jonas
+ generic implementation of tcg.g_flags2ref()
* tcg.flags2xxx() now also needs a size parameter