summaryrefslogtreecommitdiff
path: root/ia32/Machregs.v
diff options
context:
space:
mode:
Diffstat (limited to 'ia32/Machregs.v')
-rw-r--r--ia32/Machregs.v6
1 files changed, 6 insertions, 0 deletions
diff --git a/ia32/Machregs.v b/ia32/Machregs.v
index 528e9ed..826dadf 100644
--- a/ia32/Machregs.v
+++ b/ia32/Machregs.v
@@ -75,6 +75,8 @@ Definition destroyed_by_op (op: operation): list mreg :=
match op with
| Omove => FP0 :: nil
| Ocast8signed | Ocast8unsigned | Ocast16signed | Ocast16unsigned => AX :: nil
+ | Omulhs => AX :: DX :: nil
+ | Omulhu => AX :: DX :: nil
| Odiv => AX :: DX :: nil
| Odivu => AX :: DX :: nil
| Omod => AX :: DX :: nil
@@ -136,6 +138,8 @@ Definition temp_for_parent_frame: mreg :=
Definition mregs_for_operation (op: operation): list (option mreg) * option mreg :=
match op with
+ | Omulhs => (Some AX :: None :: nil, Some DX)
+ | Omulhu => (Some AX :: None :: nil, Some DX)
| Odiv => (Some AX :: Some CX :: nil, Some AX)
| Odivu => (Some AX :: Some CX :: nil, Some AX)
| Omod => (Some AX :: Some CX :: nil, Some DX)
@@ -192,6 +196,8 @@ Definition two_address_op (op: operation) : bool :=
| Osub => true
| Omul => true
| Omulimm _ => true
+ | Omulhs => false
+ | Omulhu => false
| Odiv => false
| Odivu => false
| Omod => false