aboutsummaryrefslogtreecommitdiff
path: root/compiler/elymasAsm.ey
diff options
context:
space:
mode:
authorDrahflow <drahflow@gmx.de>2013-09-20 14:51:02 +0200
committerDrahflow <drahflow@gmx.de>2013-09-20 14:51:02 +0200
commiteea02bbc59f4f0ece2756cdc846d351238d2b6a7 (patch)
treec849207f9373bbbc47abb40ed8fc7b6708b1e48e /compiler/elymasAsm.ey
parentcb5d3e47e54a188ecbb5385f80b0bdadf9297b33 (diff)
Client-side optimizer
Diffstat (limited to 'compiler/elymasAsm.ey')
-rw-r--r--compiler/elymasAsm.ey17
1 files changed, 13 insertions, 4 deletions
diff --git a/compiler/elymasAsm.ey b/compiler/elymasAsm.ey
index e1f7d5a..ca3bdd7 100644
--- a/compiler/elymasAsm.ey
+++ b/compiler/elymasAsm.ey
@@ -62,7 +62,7 @@
-01 0 gt %08 mul add
} /rex deff
- { =mem =reg
+ { ==mem ==reg
mem [ /spl /sp /esp /rsp /bpl /bp /ebp /rbp ] streq any {
"modrm00 not possible on rsp / rbp and their partial registers" die
} rep
@@ -72,7 +72,7 @@
reg regno 8 mul %38 band add
} /modrm00 deff
- { =mem =reg
+ { ==mem ==reg
mem [ /spl /sp /esp /rsp ] streq any not assert
%40
@@ -80,7 +80,7 @@
reg regno 8 mul %38 band add
} /modrm01 deff
- { =mem =reg
+ { ==mem ==reg
mem [ /spl /sp /esp /rsp ] streq any not assert
%80
@@ -88,7 +88,7 @@
reg regno 8 mul %38 band add
} /modrm10 deff
- { =mem =reg
+ { ==mem ==reg
%C0
mem regno %07 band add
reg regno 8 mul %38 band add
@@ -1091,6 +1091,15 @@
%0B
} /ud2 deff
+ { ==regb ==rega
+ rega bit64assert
+ regb bit64assert
+
+ 1 rega /none regb rex
+ %87
+ rega regb modrm11
+ } /xchgqRegReg deff
+
{ ==mem ==reg
reg bit64assert
mem bit64assert