diff options
author | Alain Frisch <alain@frisch.fr> | 2014-09-30 14:19:15 +0000 |
---|---|---|
committer | Alain Frisch <alain@frisch.fr> | 2014-09-30 14:19:15 +0000 |
commit | 25a6f99a6bd628736deab81eea21ff2266e96f32 (patch) | |
tree | c861e0f66ca9df1702178118f101841ada7e8dbd /asmcomp | |
parent | 2ae09f0ae934d8eed7f4871ac0d40a9fce808602 (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.ml | 67 | ||||
-rw-r--r-- | asmcomp/intel_dsl.mli | 58 |
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 |