summaryrefslogtreecommitdiffstats
path: root/asmcomp/arm/scheduling.ml
diff options
context:
space:
mode:
Diffstat (limited to 'asmcomp/arm/scheduling.ml')
-rw-r--r--asmcomp/arm/scheduling.ml10
1 files changed, 4 insertions, 6 deletions
diff --git a/asmcomp/arm/scheduling.ml b/asmcomp/arm/scheduling.ml
index 9e2d65bc6..0d6618ab9 100644
--- a/asmcomp/arm/scheduling.ml
+++ b/asmcomp/arm/scheduling.ml
@@ -31,8 +31,8 @@ method oper_latency = function
| Ifloatofint (* mcr/mrc count as memory access *)
| Iintoffloat -> 2
(* Multiplys have a latency of two cycles *)
- | Iintop Imul
- | Ispecific(Imuladd | Imulsub) -> 2
+ | Iintop (Imul | Imulh)
+ | Ispecific(Imuladd | Imulsub | Imulhadd) -> 2
(* VFP instructions *)
| Iaddf
| Isubf
@@ -58,10 +58,8 @@ method oper_issue_cycles = function
| Iintop(Icheckbound)
| Iintop_imm(Icheckbound, _) -> 2
| Ispecific(Ishiftcheckbound _) -> 3
- | Iintop_imm(Idiv, _) -> 4
- | Iintop_imm(Imod, _) -> 6
- | Iintop Imul
- | Ispecific(Imuladd | Imulsub) -> 2
+ | Iintop(Imul | Imulh)
+ | Ispecific(Imuladd | Imulsub | Imulhadd) -> 2
(* VFP instructions *)
| Iaddf
| Isubf -> 7