From c041e65b3d2f03a695b7843aa8446ab1838595f9 Mon Sep 17 00:00:00 2001 From: laksen Date: Sun, 16 Sep 2018 20:51:15 +0000 Subject: Fix bug in lui+addi immediate load for spilling code. git-svn-id: https://svn.freepascal.org/svn/fpc/branches/laksen@39764 3ad0048d-3df7-0310-abae-a5850022a9f2 --- riscv_new/compiler/riscv/rgcpu.pas | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/riscv_new/compiler/riscv/rgcpu.pas b/riscv_new/compiler/riscv/rgcpu.pas index 3c7047e4db..e24821575a 100644 --- a/riscv_new/compiler/riscv/rgcpu.pas +++ b/riscv_new/compiler/riscv/rgcpu.pas @@ -67,9 +67,9 @@ unit rgcpu; hreg:=cg.getintregister(helplist,OS_ADDR); if (spilltemp.offset and $800)<>0 then - helplist.concat(taicpu.op_reg_const(A_LUI,hreg,(spilltemp.offset shr 12) and $FFFFF)) + helplist.concat(taicpu.op_reg_const(A_LUI,hreg,((spilltemp.offset shr 12)+1) and $FFFFF)) else - helplist.concat(taicpu.op_reg_const(A_LUI,hreg,((spilltemp.offset shr 12)+1) and $FFFFF)); + helplist.concat(taicpu.op_reg_const(A_LUI,hreg,(spilltemp.offset shr 12) and $FFFFF)); helplist.concat(taicpu.op_reg_reg_const(A_ADDI,hreg,hreg,SarSmallint(spilltemp.offset shl 4,4))); helplist.concat(taicpu.op_reg_reg_reg(A_ADD,hreg,hreg,spilltemp.base)); -- cgit v1.2.1