summaryrefslogtreecommitdiff
path: root/copt
diff options
context:
space:
mode:
authorRobert de Bath <rdebath@poboxes.com>1998-07-01 01:00:00 +0200
committerLubomir Rintel <lkundrak@v3.sk>2013-10-23 23:40:31 +0200
commitec5f28e3f1400b5dacb88eda2d9db472a20b4349 (patch)
treeb3215b2306709d0412fd7845c78ca63ccaa2e29b /copt
parent2f828530e36a02c5b4c534e42ab812370c2bf7d9 (diff)
downloaddev86-ec5f28e3f1400b5dacb88eda2d9db472a20b4349.tar.gz
Import Dev86src-0.14.3.tar.gzv0.14.3
Diffstat (limited to 'copt')
-rw-r--r--copt/rules.8619
-rw-r--r--copt/rules.end4
-rw-r--r--copt/rules.start4
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