aboutsummaryrefslogtreecommitdiffstats
path: root/mppa_k1c/PostpassSchedulingOracle.ml
diff options
context:
space:
mode:
authorCyril SIX <cyril.six@kalray.eu>2019-02-12 15:15:51 +0100
committerCyril SIX <cyril.six@kalray.eu>2019-02-12 15:15:51 +0100
commit0a56ab26bc776468e6cf462cb5136fd62d4eb44a (patch)
treecd9792d98d3f77f8933ff85f8ce00fa75a1495ad /mppa_k1c/PostpassSchedulingOracle.ml
parent40bc8bf185c5cd3c5620cf4fe24ebcc9511c79fb (diff)
downloadcompcert-kvx-0a56ab26bc776468e6cf462cb5136fd62d4eb44a.tar.gz
compcert-kvx-0a56ab26bc776468e6cf462cb5136fd62d4eb44a.zip
Added Pmakefs and Pmakef to the scheduler
Diffstat (limited to 'mppa_k1c/PostpassSchedulingOracle.ml')
-rw-r--r--mppa_k1c/PostpassSchedulingOracle.ml12
1 files changed, 9 insertions, 3 deletions
diff --git a/mppa_k1c/PostpassSchedulingOracle.ml b/mppa_k1c/PostpassSchedulingOracle.ml
index 614af7f5..b5f74a6d 100644
--- a/mppa_k1c/PostpassSchedulingOracle.ml
+++ b/mppa_k1c/PostpassSchedulingOracle.ml
@@ -81,6 +81,10 @@ let arith_ri32_str = "Pmake"
let arith_ri64_str = "Pmakel"
+let arith_rf32_str = "Pmakefs"
+
+let arith_rf64_str = "Pmakef"
+
let store_str = function
| Psb -> "Psb"
| Psh -> "Psh"
@@ -127,8 +131,10 @@ let arith_rec i =
| PArithRRR (i, rd, rs1, rs2) -> arith_rrr_rec i (IR rd) (IR rs1) (IR rs2)
| PArithRI32 (rd, imm32) -> { inst = arith_ri32_str; write_locs = [Reg (IR rd)]; read_locs = []; imm = (Some (I32 imm32)) ; is_control = false}
| PArithRI64 (rd, imm64) -> { inst = arith_ri64_str; write_locs = [Reg (IR rd)]; read_locs = []; imm = (Some (I64 imm64)) ; is_control = false}
- | PArithRF32 (rd, f) -> raise OpaqueInstruction (* FIXME - complete later *)
- | PArithRF64 (rd, f) -> raise OpaqueInstruction
+ | PArithRF32 (rd, f) -> { inst = arith_rf32_str; write_locs = [Reg (IR rd)]; read_locs = [];
+ imm = (Some (I32 (Floats.Float32.to_bits f))); is_control = false}
+ | PArithRF64 (rd, f) -> { inst = arith_rf64_str; write_locs = [Reg (IR rd)]; read_locs = [];
+ imm = (Some (I64 (Floats.Float.to_bits f))); is_control = false}
| PArithRR (i, rd, rs) -> arith_rr_rec i (IR rd) (IR rs)
| PArithR (i, rd) -> arith_r_rec i (IR rd)
@@ -360,7 +366,7 @@ let ab_inst_to_real = function
| "Pslll" | "Psllil" -> Slld
| "Pxorw" | "Pxoriw" -> Xorw
| "Pxorl" | "Pxoril" -> Xord
- | "Pmake" | "Pmakel" | "Ploadsymbol" -> Make
+ | "Pmake" | "Pmakel" | "Pmakefs" | "Pmakef" | "Ploadsymbol" -> Make
| "Pnop" | "Pcvtw2l" -> Nop
| "Psxwd" -> Sxwd
| "Pzxwd" -> Zxwd