aboutsummaryrefslogtreecommitdiffstats
path: root/mppa_k1c/PostpassSchedulingOracle.ml
diff options
context:
space:
mode:
authorDavid Monniaux <david.monniaux@univ-grenoble-alpes.fr>2019-03-16 18:01:25 +0100
committerDavid Monniaux <david.monniaux@univ-grenoble-alpes.fr>2019-03-16 18:01:25 +0100
commitfb02f9116621a0bcb9bb2c334ad782fee5887d0e (patch)
treebce5373f7b3e1c88c4ca69b83da7f420840a5cba /mppa_k1c/PostpassSchedulingOracle.ml
parent8155320553564674b7481b325c33845439b46b95 (diff)
downloadcompcert-kvx-fb02f9116621a0bcb9bb2c334ad782fee5887d0e.tar.gz
compcert-kvx-fb02f9116621a0bcb9bb2c334ad782fee5887d0e.zip
partial norw
Diffstat (limited to 'mppa_k1c/PostpassSchedulingOracle.ml')
-rw-r--r--mppa_k1c/PostpassSchedulingOracle.ml11
1 files changed, 7 insertions, 4 deletions
diff --git a/mppa_k1c/PostpassSchedulingOracle.ml b/mppa_k1c/PostpassSchedulingOracle.ml
index 791936f3..c674bf3e 100644
--- a/mppa_k1c/PostpassSchedulingOracle.ml
+++ b/mppa_k1c/PostpassSchedulingOracle.ml
@@ -63,6 +63,7 @@ let arith_rrr_str = function
| Pandw -> "Pandw"
| Pnandw -> "Pnandw"
| Porw -> "Porw"
+ | Pnorw -> "Pnorw"
| Pxorw -> "Pxorw"
| Psraw -> "Psraw"
| Psrlw -> "Psrlw"
@@ -89,6 +90,7 @@ let arith_rri32_str = function
| Pandiw -> "Pandiw"
| Pnandiw -> "Pnandiw"
| Poriw -> "Poriw"
+ | Pnoriw -> "Pnoriw"
| Pxoriw -> "Pxoriw"
| Psraiw -> "Psraiw"
| Psrliw -> "Psrliw"
@@ -380,7 +382,7 @@ type real_instruction =
(* ALU *)
| Addw | Andw | Compw | Mulw | Orw | Sbfw | Sraw | Srlw | Sllw | Rorw | Xorw
| Addd | Andd | Compd | Muld | Ord | Sbfd | Srad | Srld | Slld | Xord
- | Nandw
+ | Nandw | Norw
| Make | Nop | Sxwd | Zxwd
(* LSU *)
| Lbs | Lbz | Lhs | Lhz | Lws | Ld
@@ -406,6 +408,7 @@ let ab_inst_to_real = function
| "Pmulw" -> Mulw
| "Pmull" -> Muld
| "Porw" | "Poriw" -> Orw
+ | "Pnorw" | "Pnoriw" -> Norw
| "Porl" | "Poril" -> Ord
| "Psubw" | "Pnegw" -> Sbfw
| "Psubl" | "Pnegl" -> Sbfd
@@ -469,7 +472,7 @@ let ab_inst_to_real = function
| "Pfmuld" -> Fmuld
| "Pfmulw" -> Fmulw
| s -> failwith @@ sprintf "ab_inst_to_real: unrecognized instruction: %s" s
-
+
exception InvalidEncoding
let rec_to_usage r =
@@ -479,7 +482,7 @@ let rec_to_usage r =
(* I do not know yet in which context Ofslow can be used by CompCert *)
and real_inst = ab_inst_to_real r.inst
in match real_inst with
- | Addw | Andw | Nandw | Orw | Sbfw | Xorw ->
+ | Addw | Andw | Nandw | Orw | Norw | Sbfw | Xorw ->
(match encoding with None | Some U6 | Some S10 -> alu_tiny
| Some U27L5 | Some U27L10 -> alu_tiny_x
| _ -> raise InvalidEncoding)
@@ -532,7 +535,7 @@ let rec_to_usage r =
let real_inst_to_latency = function
| Nop -> 0 (* Only goes through ID *)
| Addw | Andw | Compw | Orw | Sbfw | Sraw | Srlw | Sllw | Xorw
- | Rorw | Nandw
+ | Rorw | Nandw | Norw
| Addd | Andd | Compd | Ord | Sbfd | Srad | Srld | Slld | Xord | Make
| Sxwd | Zxwd | Fcompw | Fcompd
-> 1