diff options
author | Tristan Gingold <tgingold@free.fr> | 2021-09-14 19:11:48 +0200 |
---|---|---|
committer | Tristan Gingold <tgingold@free.fr> | 2021-09-14 19:11:48 +0200 |
commit | ecd3da07e1aff06fee8fff48022a6fb3a438b805 (patch) | |
tree | d5a4a558c18584f13958d6b77b19b49bb640b73c /src | |
parent | 324403d7af16ac7b72f478080cd0447f902e4255 (diff) | |
download | ghdl-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')
-rw-r--r-- | src/ortho/mcode/ortho_code-x86-insns.adb | 7 |
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; |