diff options
author | Xavier Leroy <xavier.leroy@inria.fr> | 2003-06-30 15:32:45 +0000 |
---|---|---|
committer | Xavier Leroy <xavier.leroy@inria.fr> | 2003-06-30 15:32:45 +0000 |
commit | 2798826120084410c02b259f4410050dd9eb19ea (patch) | |
tree | f344c57e8f1dd13aea163680b703a444ca8be9c2 | |
parent | e8e8d336241a1cc1cac6253077ab9ee9621fe189 (diff) |
Petite optimisation pour le Pentium 4
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@5637 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
-rw-r--r-- | asmcomp/i386/emit.mlp | 3 | ||||
-rw-r--r-- | asmcomp/i386/emit_nt.mlp | 2 |
2 files changed, 5 insertions, 0 deletions
diff --git a/asmcomp/i386/emit.mlp b/asmcomp/i386/emit.mlp index 245feadcb..840dab875 100644 --- a/asmcomp/i386/emit.mlp +++ b/asmcomp/i386/emit.mlp @@ -141,6 +141,9 @@ let emit_addressing addr r n = | Iindexed2 d -> if d <> 0 then emit_int d; `({emit_reg r.(n)}, {emit_reg r.(n+1)})` + | Iscaled(2, d) -> + if d <> 0 then emit_int d; + `({emit_reg r.(n)}, {emit_reg r.(n)})` | Iscaled(scale, d) -> if d <> 0 then emit_int d; `(, {emit_reg r.(n)}, {emit_int scale})` diff --git a/asmcomp/i386/emit_nt.mlp b/asmcomp/i386/emit_nt.mlp index 2a6bb7519..2eb9de80b 100644 --- a/asmcomp/i386/emit_nt.mlp +++ b/asmcomp/i386/emit_nt.mlp @@ -126,6 +126,8 @@ let emit_addressing addr r n = `[{emit_reg r.(n)}{emit_signed_int d}]` | Iindexed2 d -> `[{emit_reg r.(n)}+{emit_reg r.(n+1)}{emit_signed_int d}]` + | Iscaled(2, d) -> + `[{emit_reg r.(n)}+{emit_reg r.(n)}{emit_signed_int d}]` | Iscaled(scale, d) -> `[{emit_reg r.(n)}*{emit_int scale}{emit_signed_int d}]` | Iindexed2scaled(scale, d) -> |