aboutsummaryrefslogtreecommitdiffstats
path: root/mppa_k1c/PostpassSchedulingOracle.ml
diff options
context:
space:
mode:
Diffstat (limited to 'mppa_k1c/PostpassSchedulingOracle.ml')
-rw-r--r--mppa_k1c/PostpassSchedulingOracle.ml8
1 files changed, 5 insertions, 3 deletions
diff --git a/mppa_k1c/PostpassSchedulingOracle.ml b/mppa_k1c/PostpassSchedulingOracle.ml
index 4d7c8636..5c155540 100644
--- a/mppa_k1c/PostpassSchedulingOracle.ml
+++ b/mppa_k1c/PostpassSchedulingOracle.ml
@@ -159,6 +159,7 @@ let expand_rec = function
let ctl_flow_rec = function
| Pret -> { inst = "Pret"; write_locs = []; read_locs = [Reg RA]; imm = None ; is_control = true}
| Pcall lbl -> { inst = "Pcall"; write_locs = [Reg RA]; read_locs = []; imm = None ; is_control = true}
+ | Picall r -> { inst = "Picall"; write_locs = [Reg RA]; read_locs = [Reg (IR r)]; imm = None; is_control = true}
| Pgoto lbl -> { inst = "Pcall"; write_locs = []; read_locs = []; imm = None ; is_control = true}
| Pj_l lbl -> { inst = "Pj_l"; write_locs = []; read_locs = []; imm = None ; is_control = true}
| Pcb (bt, rs, lbl) -> { inst = "Pcb"; write_locs = []; read_locs = [Reg (IR rs)]; imm = None ; is_control = true}
@@ -332,7 +333,7 @@ type real_instruction =
| Lbs | Lbz | Lhs | Lhz | Lws | Ld
| Sb | Sh | Sw | Sd
(* BCU *)
- | Call | Cb | Goto | Ret | Get | Set
+ | Icall | Call | Cb | Goto | Ret | Get | Set
(* FPU *)
| Fnegd
@@ -376,6 +377,7 @@ let ab_inst_to_real = function
| "Pcb" | "Pcbu" -> Cb
| "Pcall" -> Call
+ | "Picall" -> Icall
| "Pgoto" | "Pj_l" -> Goto
| "Pget" -> Get
| "Pret" -> Ret
@@ -428,7 +430,7 @@ let rec_to_usage r =
(match encoding with None | Some U6 | Some S10 -> lsu_acc
| Some U27L5 | Some U27L10 -> lsu_acc_x
| Some E27U27L10 -> lsu_acc_y)
- | Call | Cb | Goto | Ret | Set -> bcu
+ | Icall | Call | Cb | Goto | Ret | Set -> bcu
| Get -> bcu_tiny_tiny_mau_xnop
| Fnegd -> alu_lite
@@ -444,7 +446,7 @@ let real_inst_to_latency = function
-> 3 (* FIXME - random value *)
| Get -> 1
| Set -> 3
- | Call | Cb | Goto | Ret -> 42 (* Should not matter since it's the final instruction of the basic block *)
+ | Icall | Call | Cb | Goto | Ret -> 42 (* Should not matter since it's the final instruction of the basic block *)
| Fnegd -> 1
let rec_to_info r : inst_info =