Fixed bug in peephole optimizer.

git-svn-id: branches/laksen/riscv_new@39486 -
This commit is contained in:
Jeppe Johansen 2018-07-22 16:58:10 +00:00
parent 2499129ba5
commit a906feb05e
2 changed files with 9 additions and 0 deletions

View File

@ -527,6 +527,14 @@ uses cutils, cclasses;
function taicpu.spilling_get_operation_type_ref(opnr: longint; reg: tregister): topertype;
begin
result := operand_read;
case opcode of
{$ifdef RISCV64}
A_SD,
{$endif RISCV64}
A_SB,A_SH,A_SW:
if opnr=1 then
result:=operand_write;
end;
end;

View File

@ -112,6 +112,7 @@ implementation
(hp1.typ=ait_instruction) and
(taicpu(hp1).opcode=A_ADDI) and
(taicpu(hp1).ops=3) and
(taicpu(p).oper[0]^.reg=taicpu(hp1).oper[1]^.reg) and
(taicpu(p).oper[2]^.typ=top_const) and
is_imm12(taicpu(p).oper[2]^.val+taicpu(hp1).oper[2]^.val) and
(not RegModifiedBetween(taicpu(p).oper[1]^.reg, p,hp1)) and