summaryrefslogtreecommitdiff
path: root/asmcomp/sparc/emit.mlp
diff options
context:
space:
mode:
authorXavier Leroy <xavier.leroy@inria.fr>1998-10-20 15:27:27 +0000
committerXavier Leroy <xavier.leroy@inria.fr>1998-10-20 15:27:27 +0000
commit59cb8750d21154c767d7224cd0f726b5da62d59b (patch)
tree3d85248db50216bc3639b9746818e40ece74fa5d /asmcomp/sparc/emit.mlp
parent44f468cd12417c153342dbcac498ada11355886f (diff)
downloadocaml-59cb8750d21154c767d7224cd0f726b5da62d59b.tar.gz
Simplification des modes d'adressage: suppression du mode Iindexed2, inefficace et genant le bon scheduling
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@2133 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
Diffstat (limited to 'asmcomp/sparc/emit.mlp')
-rw-r--r--asmcomp/sparc/emit.mlp26
1 files changed, 0 insertions, 26 deletions
diff --git a/asmcomp/sparc/emit.mlp b/asmcomp/sparc/emit.mlp
index 888c279d77..a83219933b 100644
--- a/asmcomp/sparc/emit.mlp
+++ b/asmcomp/sparc/emit.mlp
@@ -115,18 +115,6 @@ let emit_load instr addr arg dst =
` or %g1, %lo({emit_int ofs}), %g1\n`;
` {emit_string instr} [{emit_reg arg.(0)} + %g1], {emit_reg dst}\n`
end
- | Iindexed2 ofs ->
- if ofs = 0 then
- ` {emit_string instr} [{emit_reg arg.(0)} + {emit_reg arg.(1)}], {emit_reg dst}\n`
- else if is_immediate ofs then begin
- ` add {emit_reg arg.(1)}, {emit_int ofs}, %g1\n`;
- ` {emit_string instr} [{emit_reg arg.(0)} + %g1], {emit_reg dst}\n`
- end else begin
- ` sethi %hi({emit_int ofs}), %g1\n`;
- ` or %g1, %lo({emit_int ofs}), %g1\n`;
- ` add {emit_reg arg.(1)}, %g1, %g1\n`;
- ` {emit_string instr} [{emit_reg arg.(0)} + %g1], {emit_reg dst}\n`
- end
(* Output a store *)
@@ -146,18 +134,6 @@ let emit_store instr addr arg src =
` or %g1, %lo({emit_int ofs}), %g1\n`;
` {emit_string instr} {emit_reg src}, [{emit_reg arg.(1)} + %g1]\n`
end
- | Iindexed2 ofs ->
- if ofs = 0 then
- ` {emit_string instr} {emit_reg src}, [{emit_reg arg.(1)} + {emit_reg arg.(2)}]\n`
- else if is_immediate ofs then begin
- ` add {emit_reg arg.(2)}, {emit_int ofs}, %g1\n`;
- ` {emit_string instr} {emit_reg src}, [{emit_reg arg.(1)} + %g1]\n`
- end else begin
- ` sethi %hi({emit_int ofs}), %g1\n`;
- ` or %g1, %lo({emit_int ofs}), %g1\n`;
- ` add {emit_reg arg.(2)}, %g1, %g1\n`;
- ` {emit_string instr} {emit_reg src}, [{emit_reg arg.(1)} + %g1]\n`
- end
(* Record live pointers at call points *)
@@ -550,9 +526,7 @@ let is_one_instr i =
| Iconst_int n -> is_native_immediate n
| Istackoffset _ -> true
| Iload(_, Iindexed n) -> i.res.(0).typ <> Float & is_immediate n
- | Iload(_, Iindexed2 n) -> i.res.(0).typ <> Float & n = 0
| Istore(_, Iindexed n) -> i.arg.(0).typ <> Float & is_immediate n
- | Istore(_, Iindexed2 n) -> i.arg.(0).typ <> Float & n = 0
| Iintop(op) -> is_one_instr_op op
| Iintop_imm(op, _) -> is_one_instr_op op
| Iaddf | Isubf | Imulf | Idivf -> true