diff options
author | Robert de Bath <rdebath@poboxes.com> | 1998-07-01 01:00:00 +0200 |
---|---|---|
committer | Lubomir Rintel <lkundrak@v3.sk> | 2013-10-23 23:40:31 +0200 |
commit | ec5f28e3f1400b5dacb88eda2d9db472a20b4349 (patch) | |
tree | b3215b2306709d0412fd7845c78ca63ccaa2e29b /copt | |
parent | 2f828530e36a02c5b4c534e42ab812370c2bf7d9 (diff) | |
download | dev86-ec5f28e3f1400b5dacb88eda2d9db472a20b4349.tar.gz |
Import Dev86src-0.14.3.tar.gzv0.14.3
Diffstat (limited to 'copt')
-rw-r--r-- | copt/rules.86 | 19 | ||||
-rw-r--r-- | copt/rules.end | 4 | ||||
-rw-r--r-- | copt/rules.start | 4 |
3 files changed, 22 insertions, 5 deletions
diff --git a/copt/rules.86 b/copt/rules.86 index 239ebde..b788312 100644 --- a/copt/rules.86 +++ b/copt/rules.86 @@ -11,20 +11,30 @@ mov %[ax|bx|cx|dx]1,%2 = mov %2,%1 +# Breaks: a = b = 125; +# mov %[ax|bx|cx|dx]3,%[#|*]0%1 +# mov %2[%4],%[ax|bx|cx|dx]3 +# = +# mov word ptr %2[%4],%0%1 + +# This gets a few back. mov %[ax|bx|cx|dx]3,%[#|*]0%1 mov %2[%4],%[ax|bx|cx|dx]3 +mov %[ax|bx|cx|dx]3,%5 = mov word ptr %2[%4],%0%1 +mov %3,%5 mov %[ax|bx|cx|dx]3,%[#|*]0%1 mov %[ax|bx|cx|dx]2,%[ax|bx|cx|dx]3 = mov %2,%0%1 -mov al,%[#|*]0%1 -mov %2,al -= -mov byte ptr %2,%0%1 +# Breaks: a = b = 'a'; +# mov al,%[#|*]0%1 +# mov %2,al +# = +# mov byte ptr %2,%0%1 xor ax,ax mov bx,%[#|*]0%1 @@ -287,7 +297,6 @@ push %1 mov %1,%2 push %2 - # Rules to remove superflous mov instructions mov %1,%2 diff --git a/copt/rules.end b/copt/rules.end index feda08b..cf2c6df 100644 --- a/copt/rules.end +++ b/copt/rules.end @@ -16,3 +16,7 @@ pop di pop bp ret +pmov %1,%2 += +push %1 +mov %1,%2 diff --git a/copt/rules.start b/copt/rules.start index f494305..5a38888 100644 --- a/copt/rules.start +++ b/copt/rules.start @@ -17,3 +17,7 @@ ret = proc_end +push %1 +mov %1,%2 += +pmov %1,%2 |