diff options
| author | Drahflow <drahflow@gmx.de> | 2013-09-20 14:51:02 +0200 |
|---|---|---|
| committer | Drahflow <drahflow@gmx.de> | 2013-09-20 14:51:02 +0200 |
| commit | eea02bbc59f4f0ece2756cdc846d351238d2b6a7 (patch) | |
| tree | c849207f9373bbbc47abb40ed8fc7b6708b1e48e /compiler/elymasAsm.ey | |
| parent | cb5d3e47e54a188ecbb5385f80b0bdadf9297b33 (diff) | |
Client-side optimizer
Diffstat (limited to 'compiler/elymasAsm.ey')
| -rw-r--r-- | compiler/elymasAsm.ey | 17 |
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 |
