aboutsummaryrefslogtreecommitdiffstats
path: root/src/ortho
diff options
context:
space:
mode:
authorTristan Gingold <tgingold@free.fr>2021-09-14 19:11:48 +0200
committerTristan Gingold <tgingold@free.fr>2021-09-14 19:11:48 +0200
commitecd3da07e1aff06fee8fff48022a6fb3a438b805 (patch)
treed5a4a558c18584f13958d6b77b19b49bb640b73c /src/ortho
parent324403d7af16ac7b72f478080cd0447f902e4255 (diff)
downloadghdl-ecd3da07e1aff06fee8fff48022a6fb3a438b805.tar.gz
ghdl-ecd3da07e1aff06fee8fff48022a6fb3a438b805.tar.bz2
ghdl-ecd3da07e1aff06fee8fff48022a6fb3a438b805.zip
ortho_code-x86-insns: handle OE_ADD R_I_Off + R_I. Fix #1864
Diffstat (limited to 'src/ortho')
-rw-r--r--src/ortho/mcode/ortho_code-x86-insns.adb7
1 files changed, 7 insertions, 0 deletions
diff --git a/src/ortho/mcode/ortho_code-x86-insns.adb b/src/ortho/mcode/ortho_code-x86-insns.adb
index ae69f29e7..182e79381 100644
--- a/src/ortho/mcode/ortho_code-x86-insns.adb
+++ b/src/ortho/mcode/ortho_code-x86-insns.adb
@@ -1767,6 +1767,13 @@ package body Ortho_Code.X86.Insns is
| R_Any64
| Regs_R64 =>
Set_Expr_Reg (Stmt, R_Sib);
+ when R_I =>
+ Num := Get_Insn_Num;
+ Free_Insn_Regs (Right);
+ Set_Expr_Reg
+ (Right, Alloc_Reg (R_Any32, Right, Num));
+ Link_Stmt (Right);
+ Set_Expr_Reg (Stmt, R_Sib);
when others =>
Error_Gen_Insn (Stmt, R_R);
end case;