summaryrefslogtreecommitdiffstats
path: root/asmcomp
diff options
context:
space:
mode:
authorAlain Frisch <alain@frisch.fr>2014-09-30 14:19:15 +0000
committerAlain Frisch <alain@frisch.fr>2014-09-30 14:19:15 +0000
commit25a6f99a6bd628736deab81eea21ff2266e96f32 (patch)
treec861e0f66ca9df1702178118f101841ada7e8dbd /asmcomp
parent2ae09f0ae934d8eed7f4871ac0d40a9fce808602 (diff)
Sort.
git-svn-id: http://caml.inria.fr/svn/ocaml/branches/abstract_intel_emit@15389 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
Diffstat (limited to 'asmcomp')
-rw-r--r--asmcomp/intel_dsl.ml67
-rw-r--r--asmcomp/intel_dsl.mli58
2 files changed, 58 insertions, 67 deletions
diff --git a/asmcomp/intel_dsl.ml b/asmcomp/intel_dsl.ml
index a78691867..b83481cef 100644
--- a/asmcomp/intel_dsl.ml
+++ b/asmcomp/intel_dsl.ml
@@ -219,54 +219,45 @@ module INS64 = struct
include INS
let add (x, y) = emit (ADD (x, y))
- let sub (x, y) = emit (SUB (x, y))
+ let addsd (arg1, arg2) = emit (ADDSD (arg1, arg2))
let and_ (x, y) = emit (AND (x, y))
- let or_ (x, y) = emit (OR (x, y))
- let xor (x, y) = emit (XOR (x, y))
+ let andpd (arg1, arg2) = emit (ANDPD (arg1, arg2))
+ let bswap arg = emit (BSWAP arg)
let cmp (x, y) = emit (CMP (x, y))
- let test (x, y) = emit (TEST (x, y))
-
- let mov (x, y) = emit (MOV (x, y))
-
- let movzx (x, y) = emit (MOVZX (x, y))
- let movsx (x, y) = emit (MOVSX (x, y))
-
+ let comisd (arg1, arg2) = emit (COMISD (arg1, arg2))
+ let cqo () = emit CQO
+ let cvtsd2ss (arg1, arg2) = emit (CVTSD2SS (arg1, arg2))
+ let cvtsi2sd (arg1, arg2) = emit (CVTSI2SD (arg1, arg2))
+ let cvtss2sd (arg1, arg2) = emit (CVTSS2SD (arg1, arg2))
+ let cvttsd2si (arg1, arg2) = emit (CVTTSD2SI (arg1, arg2))
+ let dec arg = emit (DEC arg)
+ let divsd (arg1, arg2) = emit (DIVSD (arg1, arg2))
let idiv arg = emit (IDIV arg)
-
- let sal (arg1, arg2) = emit (SAL (arg1, arg2))
- let sar (arg1, arg2) = emit (SAR (arg1, arg2))
- let shr (arg1, arg2) = emit (SHR (arg1, arg2))
let imul (arg1, arg2) = emit (IMUL (arg1, arg2))
-
- let pop arg = emit (POP arg)
- let push arg = emit (PUSH arg)
+ let inc arg = emit (INC arg)
let lea (arg1, arg2) = emit (LEA (arg1, arg2))
-
- let movsd (arg1, arg2) = emit (MOVSD (arg1, arg2))
- let ucomisd (arg1, arg2) = emit (UCOMISD (arg1, arg2))
- let comisd (arg1, arg2) = emit (COMISD (arg1, arg2))
+ let mov (x, y) = emit (MOV (x, y))
let movapd (arg1, arg2) = emit (MOVAPD (arg1, arg2))
- let xorpd (arg1, arg2) = emit (XORPD (arg1, arg2))
- let andpd (arg1, arg2) = emit (ANDPD (arg1, arg2))
-
- let movsxd (arg1, arg2) = emit (MOVSXD (arg1, arg2))
+ let movsd (arg1, arg2) = emit (MOVSD (arg1, arg2))
let movss (arg1, arg2) = emit (MOVSS (arg1, arg2))
- let cvtss2sd (arg1, arg2) = emit (CVTSS2SD (arg1, arg2))
- let cvtsd2ss (arg1, arg2) = emit (CVTSD2SS (arg1, arg2))
- let cvtsi2sd (arg1, arg2) = emit (CVTSI2SD (arg1, arg2))
- let cvttsd2si (arg1, arg2) = emit (CVTTSD2SI (arg1, arg2))
- let addsd (arg1, arg2) = emit (ADDSD (arg1, arg2))
- let subsd (arg1, arg2) = emit (SUBSD (arg1, arg2))
+ let movsx (x, y) = emit (MOVSX (x, y))
+ let movsxd (arg1, arg2) = emit (MOVSXD (arg1, arg2))
+ let movzx (x, y) = emit (MOVZX (x, y))
let mulsd (arg1, arg2) = emit (MULSD (arg1, arg2))
- let divsd (arg1, arg2) = emit (DIVSD (arg1, arg2))
+ let or_ (x, y) = emit (OR (x, y))
+ let pop arg = emit (POP arg)
+ let push arg = emit (PUSH arg)
+ let sal (arg1, arg2) = emit (SAL (arg1, arg2))
+ let sar (arg1, arg2) = emit (SAR (arg1, arg2))
+ let shr (arg1, arg2) = emit (SHR (arg1, arg2))
let sqrtsd (arg1, arg2) = emit (SQRTSD (arg1, arg2))
-
- let cqo () = emit CQO
-
- let inc arg = emit (INC arg)
- let dec arg = emit (DEC arg)
+ let sub (x, y) = emit (SUB (x, y))
+ let subsd (arg1, arg2) = emit (SUBSD (arg1, arg2))
+ let test (x, y) = emit (TEST (x, y))
+ let ucomisd (arg1, arg2) = emit (UCOMISD (arg1, arg2))
let xchg (arg1, arg2) = emit (XCHG (arg1, arg2))
- let bswap arg = emit (BSWAP arg)
+ let xor (x, y) = emit (XOR (x, y))
+ let xorpd (arg1, arg2) = emit (XORPD (arg1, arg2))
end
module DSL64 = struct
diff --git a/asmcomp/intel_dsl.mli b/asmcomp/intel_dsl.mli
index 06de35198..0d93b6e0a 100644
--- a/asmcomp/intel_dsl.mli
+++ b/asmcomp/intel_dsl.mli
@@ -183,45 +183,45 @@ module INS64 : sig
include module type of INS
val add: arg * arg -> unit
- val sub: arg * arg -> unit
+ val addsd: arg * arg -> unit
val and_: arg * arg -> unit
- val or_: arg * arg -> unit
- val xor: arg * arg -> unit
+ val andpd: arg * arg -> unit
+ val bswap: arg -> unit
val cmp: arg * arg -> unit
- val test: arg * arg -> unit
- val mov: arg * arg -> unit
- val movzx: arg * arg -> unit
- val movsx: arg * arg -> unit
+ val comisd: arg * arg -> unit
+ val cqo: unit -> unit
+ val cvtsd2ss: arg * arg -> unit
+ val cvtsi2sd: arg * arg -> unit
+ val cvtss2sd: arg * arg -> unit
+ val cvttsd2si: arg * arg -> unit
+ val dec: arg -> unit
+ val divsd: arg * arg -> unit
val idiv: arg -> unit
- val sal: arg * arg -> unit
- val sar: arg * arg -> unit
- val shr: arg * arg -> unit
val imul: arg * arg option -> unit
- val pop: arg -> unit
- val push: arg -> unit
+ val inc: arg -> unit
val lea: arg * arg -> unit
- val movsd: arg * arg -> unit
- val ucomisd: arg * arg -> unit
- val comisd: arg * arg -> unit
+ val mov: arg * arg -> unit
val movapd: arg * arg -> unit
- val xorpd: arg * arg -> unit
- val andpd: arg * arg -> unit
- val movsxd: arg * arg -> unit
+ val movsd: arg * arg -> unit
val movss: arg * arg -> unit
- val cvtss2sd: arg * arg -> unit
- val cvtsd2ss: arg * arg -> unit
- val cvtsi2sd: arg * arg -> unit
- val cvttsd2si: arg * arg -> unit
- val addsd: arg * arg -> unit
- val subsd: arg * arg -> unit
+ val movsx: arg * arg -> unit
+ val movsxd: arg * arg -> unit
+ val movzx: arg * arg -> unit
val mulsd: arg * arg -> unit
- val divsd: arg * arg -> unit
+ val or_: arg * arg -> unit
+ val pop: arg -> unit
+ val push: arg -> unit
+ val sal: arg * arg -> unit
+ val sar: arg * arg -> unit
+ val shr: arg * arg -> unit
val sqrtsd: arg * arg -> unit
- val cqo: unit -> unit
- val inc: arg -> unit
- val dec: arg -> unit
+ val sub: arg * arg -> unit
+ val subsd: arg * arg -> unit
+ val test: arg * arg -> unit
+ val ucomisd: arg * arg -> unit
val xchg: arg * arg -> unit
- val bswap: arg -> unit
+ val xor: arg * arg -> unit
+ val xorpd: arg * arg -> unit
end
module DSL64 : sig
include module type of DSL