diff options
author | Cyril SIX <cyril.six@kalray.eu> | 2019-03-07 13:24:08 +0100 |
---|---|---|
committer | Cyril SIX <cyril.six@kalray.eu> | 2019-03-07 13:24:08 +0100 |
commit | 3564930d1bbcdc86f9e884b05ab986ac81cf2ab3 (patch) | |
tree | 81db2d9b7e5d6f27fdda7f1c6e89d5c3ba83c51f /mppa_k1c | |
parent | 92b2b70c998c3a763a5c08343dc1c05254380322 (diff) | |
download | compcert-kvx-3564930d1bbcdc86f9e884b05ab986ac81cf2ab3.tar.gz compcert-kvx-3564930d1bbcdc86f9e884b05ab986ac81cf2ab3.zip |
HACK for Pcompiw/Pcompil as well
Diffstat (limited to 'mppa_k1c')
-rw-r--r-- | mppa_k1c/PostpassSchedulingOracle.ml | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/mppa_k1c/PostpassSchedulingOracle.ml b/mppa_k1c/PostpassSchedulingOracle.ml index 7742b59d..b4b87031 100644 --- a/mppa_k1c/PostpassSchedulingOracle.ml +++ b/mppa_k1c/PostpassSchedulingOracle.ml @@ -135,9 +135,15 @@ let load_str = function let set_str = "Pset" let get_str = "Pget" -let arith_rri32_rec i rd rs imm32 = { inst = arith_rri32_str i; write_locs = [Reg rd]; read_locs = [Reg rs]; imm = imm32; is_control = false } +let arith_rri32_rec i rd rs imm32 = + match i with + | Pcompiw _ -> { inst = arith_rri32_str i; write_locs = [Reg rd]; read_locs = [Reg rs; Mem]; imm = imm32; is_control = false } + | _ -> { inst = arith_rri32_str i; write_locs = [Reg rd]; read_locs = [Reg rs]; imm = imm32; is_control = false } -let arith_rri64_rec i rd rs imm64 = { inst = arith_rri64_str i; write_locs = [Reg rd]; read_locs = [Reg rs]; imm = imm64; is_control = false } +let arith_rri64_rec i rd rs imm64 = + match i with + | Pcompil _ -> { inst = arith_rri64_str i; write_locs = [Reg rd]; read_locs = [Reg rs; Mem]; imm = imm64; is_control = false } + | _ -> { inst = arith_rri64_str i; write_locs = [Reg rd]; read_locs = [Reg rs]; imm = imm64; is_control = false } let arith_rrr_rec i rd rs1 rs2 = (* FIXME - hack for memory problem with Pcompw and Pcompl, performance decreased *) match i with |