diff options
author | Tristan Gingold | 2014-01-19 19:04:12 +0100 |
---|---|---|
committer | Tristan Gingold | 2014-01-19 19:04:12 +0100 |
commit | 73fa859a477a27dacaf905c2da0b9a3afd32e37a (patch) | |
tree | 5d1c4a24276ffa0b0e15e4702e6719877f93d442 | |
parent | 53b8394dd2edefa084924c5c6537865751bd5024 (diff) | |
download | ghdl-73fa859a477a27dacaf905c2da0b9a3afd32e37a.tar.gz ghdl-73fa859a477a27dacaf905c2da0b9a3afd32e37a.tar.bz2 ghdl-73fa859a477a27dacaf905c2da0b9a3afd32e37a.zip |
mcode: fix missing clobber for 32 bit mul/div.
-rw-r--r-- | ortho/mcode/binary_file.adb | 2 | ||||
-rw-r--r-- | ortho/mcode/ortho_code-x86-insns.adb | 2 |
2 files changed, 3 insertions, 1 deletions
diff --git a/ortho/mcode/binary_file.adb b/ortho/mcode/binary_file.adb index 3a166d9..6043d73 100644 --- a/ortho/mcode/binary_file.adb +++ b/ortho/mcode/binary_file.adb @@ -319,7 +319,7 @@ package body Binary_File is procedure End_Insn is - Str : String (1 .. 128); + Str : String (1 .. 256); Len : Natural; Insn_Len : Natural; begin diff --git a/ortho/mcode/ortho_code-x86-insns.adb b/ortho/mcode/ortho_code-x86-insns.adb index 309d8f2..c218a9a 100644 --- a/ortho/mcode/ortho_code-x86-insns.adb +++ b/ortho/mcode/ortho_code-x86-insns.adb @@ -1646,8 +1646,10 @@ package body Ortho_Code.X86.Insns is end if; if Kind = OE_Div_Ov or Kind = OE_Mul_Ov then Reg_Res := R_Ax; + Clobber_R32 (R_Dx); else Reg_Res := R_Dx; + Clobber_R32 (R_Ax); end if; Set_Expr_Reg (Stmt, Alloc_Reg (Reg_Res, Stmt, Pnum)); Link_Stmt (Stmt); |