|
@@ -795,7 +795,7 @@ unit cgcpu;
|
|
|
inc(tmpref.offset,tcgsize2size[tosize]);
|
|
|
a_loadaddr_ref_reg(list,ref,tmpreg2);
|
|
|
reference_reset_base(tmpref,tmpreg2,0,1);
|
|
|
- tmpref.direction:=dir_dec;
|
|
|
+ tmpref.direction:=dir_none;
|
|
|
|
|
|
tmpreg:=getintregister(list,tosize);
|
|
|
a_load_reg_reg(list,fromsize,tosize,register,tmpreg);
|
|
@@ -805,19 +805,18 @@ unit cgcpu;
|
|
|
begin
|
|
|
list.concat(taicpu.op_reg_ref(A_MOVE,S_B,tmpreg,tmpref));
|
|
|
list.concat(taicpu.op_const_reg(A_LSR,S_W,8,tmpreg));
|
|
|
- tmpref.direction:=dir_none;
|
|
|
+ tmpref.direction:=dir_dec;
|
|
|
list.concat(taicpu.op_reg_ref(A_MOVE,S_B,tmpreg,tmpref));
|
|
|
- sign_extend(list,fromsize,tmpreg);
|
|
|
end;
|
|
|
OS_32,OS_S32:
|
|
|
begin
|
|
|
list.concat(taicpu.op_reg_ref(A_MOVE,S_B,tmpreg,tmpref));
|
|
|
+ tmpref.direction:=dir_dec;
|
|
|
list.concat(taicpu.op_const_reg(A_LSR,S_W,8,tmpreg));
|
|
|
list.concat(taicpu.op_reg_ref(A_MOVE,S_B,tmpreg,tmpref));
|
|
|
list.concat(taicpu.op_reg(A_SWAP,S_L,tmpreg));
|
|
|
list.concat(taicpu.op_reg_ref(A_MOVE,S_B,tmpreg,tmpref));
|
|
|
list.concat(taicpu.op_const_reg(A_LSR,S_W,8,tmpreg));
|
|
|
- tmpref.direction:=dir_none;
|
|
|
list.concat(taicpu.op_reg_ref(A_MOVE,S_B,tmpreg,tmpref));
|
|
|
end
|
|
|
else
|