summaryrefslogtreecommitdiff
path: root/caml/PrintPPC.ml
diff options
context:
space:
mode:
authorGravatar xleroy <xleroy@fca1b0fc-160b-0410-b1d3-a4f43f01ea2e>2008-12-21 13:32:24 +0000
committerGravatar xleroy <xleroy@fca1b0fc-160b-0410-b1d3-a4f43f01ea2e>2008-12-21 13:32:24 +0000
commitdc4bed2cf06f46687225275131f411c86c773598 (patch)
tree9d99e759d906d061b6f213e0b20cb4bd53580ea6 /caml/PrintPPC.ml
parentec6d00d94bcb1a0adc5c698367634b5e2f370c6e (diff)
Revised back-end so that only 2 integer registers are reserved for reloading.
git-svn-id: https://yquem.inria.fr/compcert/svn/compcert/trunk@925 fca1b0fc-160b-0410-b1d3-a4f43f01ea2e
Diffstat (limited to 'caml/PrintPPC.ml')
-rw-r--r--caml/PrintPPC.ml28
1 files changed, 14 insertions, 14 deletions
diff --git a/caml/PrintPPC.ml b/caml/PrintPPC.ml
index 030dcc6..f4f2940 100644
--- a/caml/PrintPPC.ml
+++ b/caml/PrintPPC.ml
@@ -189,8 +189,8 @@ let print_instruction oc labels = function
let lbl1 = new_label() in
let lbl2 = new_label() in
let lbl3 = new_label() in
- fprintf oc " addis r2, 0, ha16(L%d)\n" lbl1;
- fprintf oc " lfd f13, lo16(L%d)(r2)\n" lbl1;
+ fprintf oc " addis r12, 0, ha16(L%d)\n" lbl1;
+ fprintf oc " lfd f13, lo16(L%d)(r12)\n" lbl1;
fprintf oc " fcmpu cr7, %a, f13\n" freg r2;
fprintf oc " cror 30, 29, 30\n";
fprintf oc " beq cr7, L%d\n" lbl2;
@@ -225,12 +225,12 @@ let print_instruction oc labels = function
fprintf oc " fsub %a, %a, %a\n" freg r1 freg r2 freg r3
| Pictf(r1, r2) ->
let lbl = new_label() in
- fprintf oc " addis r2, 0, 0x4330\n";
- fprintf oc " stw r2, -8(r1)\n";
- fprintf oc " addis r2, %a, 0x8000\n" ireg r2;
- fprintf oc " stw r2, -4(r1)\n";
- fprintf oc " addis r2, 0, ha16(L%d)\n" lbl;
- fprintf oc " lfd f13, lo16(L%d)(r2)\n" lbl;
+ fprintf oc " addis r12, 0, 0x4330\n";
+ fprintf oc " stw r12, -8(r1)\n";
+ fprintf oc " addis r12, %a, 0x8000\n" ireg r2;
+ fprintf oc " stw r12, -4(r1)\n";
+ fprintf oc " addis r12, 0, ha16(L%d)\n" lbl;
+ fprintf oc " lfd f13, lo16(L%d)(r12)\n" lbl;
fprintf oc " lfd %a, -8(r1)\n" freg r1;
fprintf oc " fsub %a, %a, f13\n" freg r1 freg r1;
fprintf oc " .const_data\n";
@@ -238,11 +238,11 @@ let print_instruction oc labels = function
fprintf oc " .text\n"
| Piuctf(r1, r2) ->
let lbl = new_label() in
- fprintf oc " addis r2, 0, 0x4330\n";
- fprintf oc " stw r2, -8(r1)\n";
+ fprintf oc " addis r12, 0, 0x4330\n";
+ fprintf oc " stw r12, -8(r1)\n";
fprintf oc " stw %a, -4(r1)\n" ireg r2;
- fprintf oc " addis r2, 0, ha16(L%d)\n" lbl;
- fprintf oc " lfd f13, lo16(L%d)(r2)\n" lbl;
+ fprintf oc " addis r12, 0, ha16(L%d)\n" lbl;
+ fprintf oc " lfd f13, lo16(L%d)(r12)\n" lbl;
fprintf oc " lfd %a, -8(r1)\n" freg r1;
fprintf oc " fsub %a, %a, f13\n" freg r1 freg r1;
fprintf oc " .const_data\n";
@@ -258,8 +258,8 @@ let print_instruction oc labels = function
fprintf oc " lfdx %a, %a, %a\n" freg r1 ireg r2 ireg r3
| Plfi(r1, c) ->
let lbl = new_label() in
- fprintf oc " addis r2, 0, ha16(L%d)\n" lbl;
- fprintf oc " lfd %a, lo16(L%d)(r2)\n" freg r1 lbl;
+ fprintf oc " addis r12, 0, ha16(L%d)\n" lbl;
+ fprintf oc " lfd %a, lo16(L%d)(r12)\n" freg r1 lbl;
fprintf oc " .const_data\n";
let n = Int64.bits_of_float c in
let nlo = Int64.to_int32 n