From 88b0db90a66f767cc83728f6ea664f782ba42cd6 Mon Sep 17 00:00:00 2001 From: florian Date: Sun, 27 Feb 2011 21:09:11 +0000 Subject: [PATCH] * use correct sizes when getting additional registers for 64 bit values git-svn-id: branches/avr@17044 - --- compiler/ncgutil.pas | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/compiler/ncgutil.pas b/compiler/ncgutil.pas index 2ff8a53ab0..7d0ab56073 100644 --- a/compiler/ncgutil.pas +++ b/compiler/ncgutil.pas @@ -500,7 +500,7 @@ implementation cg.a_load_reg_reg(list,l.size,OS_32,l.register64.reglo,hregister); end else - hregister:=cg.getintregister(list,OS_INT); + hregister:=cg.getintregister(list,OS_32); { load value in low register } case l.loc of {$ifdef cpuflags} @@ -521,7 +521,7 @@ implementation cg.a_load_loc_reg(list,OS_INT,l,hregister); end; { reset hi part, take care of the signed bit of the current value } - hregisterhi:=cg.getintregister(list,OS_INT); + hregisterhi:=cg.getintregister(list,OS_32); if (l.size in [OS_S8,OS_S16,OS_S32]) then begin if l.loc=LOC_CONSTANT then @@ -554,8 +554,8 @@ implementation end else begin - hregister:=cg.getintregister(list,OS_INT); - hregisterhi:=cg.getintregister(list,OS_INT); + hregister:=cg.getintregister(list,OS_32); + hregisterhi:=cg.getintregister(list,OS_32); const_location := false; end; hreg64.reglo:=hregister; @@ -625,8 +625,8 @@ implementation l.reference.alignment:=newalignment(l.reference.alignment,TCGSize2Size[l.size]-TCGSize2Size[dst_size]); end; {$ifdef x86} - if not (l.loc in [LOC_SUBSETREG,LOC_CSUBSETREG]) then - l.size:=dst_size; + if not (l.loc in [LOC_SUBSETREG,LOC_CSUBSETREG]) then + l.size:=dst_size; {$endif x86} end; cg.a_load_loc_reg(list,dst_size,l,hregister);