diff options
author | Léo Gourdin <leo.gourdin@univ-grenoble-alpes.fr> | 2021-04-08 20:47:38 +0200 |
---|---|---|
committer | Léo Gourdin <leo.gourdin@univ-grenoble-alpes.fr> | 2021-04-08 20:47:38 +0200 |
commit | 2f2e7b1da225aa3bf066c2fc689a08fab9851a53 (patch) | |
tree | a9c5de98b007cb176824eafe13db7e544e9bdc09 /riscV | |
parent | dd4767e17235adb5de922626ed1fea15f4eb9e3b (diff) | |
download | compcert-kvx-2f2e7b1da225aa3bf066c2fc689a08fab9851a53.tar.gz compcert-kvx-2f2e7b1da225aa3bf066c2fc689a08fab9851a53.zip |
bugfix
Diffstat (limited to 'riscV')
-rw-r--r-- | riscV/ExpansionOracle.ml | 4 | ||||
-rw-r--r-- | riscV/OpWeights.ml | 1 |
2 files changed, 3 insertions, 2 deletions
diff --git a/riscV/ExpansionOracle.ml b/riscV/ExpansionOracle.ml index e0c9b9b2..b54bd5e1 100644 --- a/riscV/ExpansionOracle.ml +++ b/riscV/ExpansionOracle.ml @@ -1053,15 +1053,15 @@ let expanse (sb : superblock) code pm = | _ -> ()); (* Update code, liveins, pathmap, and order of the superblock for one expansion *) if !was_exp then ( - node := !node + List.length !exp - 1; (if !was_branch && List.length !exp > 1 then let lives = PTree.get n !liveins in match lives with | Some lives -> - let new_branch_pc = n2p () in + let new_branch_pc = P.of_int (!node + 1) in liveins := PTree.set new_branch_pc lives !liveins; liveins := PTree.remove n !liveins | _ -> ()); + node := !node + List.length !exp - 1; write_pathmap sb.instructions.(0) (List.length !exp - 1) pm'; write_tree vn (List.rev !exp) n !node code' new_order true) else new_order := n :: !new_order) diff --git a/riscV/OpWeights.ml b/riscV/OpWeights.ml index 23fbd4fc..0a1d9ad4 100644 --- a/riscV/OpWeights.ml +++ b/riscV/OpWeights.ml @@ -63,6 +63,7 @@ module Rocket = struct 1 | Ccompf _ | Cnotcompf _ -> 2 | Ccompfs _ | Cnotcompfs _ -> 2) + | OEmayundef _ -> 0 | _ -> 1 let resources_of_op (op : operation) (nargs : int) = resource_bounds |