Patterns for floating point instruction and for LFR 8 and RET 8 added.
authorbal <none@none>
Tue, 6 Nov 1984 12:47:26 +0000 (12:47 +0000)
committerbal <none@none>
Tue, 6 Nov 1984 12:47:26 +0000 (12:47 +0000)
Each such instruction now results in a call to a library routine.
At present, all these routines generate an Illegal EM Instruction trap,
but anyone wishing to implement floating point for the 6502 can
do so without changing the back end table.

mach/6500/cg/table

index 0c7f686..a604fad 100644 (file)
@@ -2202,6 +2202,87 @@ lol lal sti $1==$2 && $3==1 | | | | | /* throw away funny C-proc-prolog */
                "jsr Pop"
                                        | %[a] | |
 
+/* FLOATING POINT
+ * Every EM floating point instruction is translated
+ * into a library call. At present, these library
+ * routines generate an 'Illegal EM instruction' trap.
+ */
+
+
+adf $1==4      | STACK |
+               "jsr Adf4"
+                                       | | |
+adf $1==8      | STACK |
+               "jsr Adf8"              | | |
+
+sbf $1==4      | STACK |
+               "jsr Sbf4"
+                                       | | |
+sbf $1==8      | STACK |
+               "jsr Sbf8"              | | |
+
+mlf $1==4      | STACK |
+               "jsr Mlf4"
+                                       | | |
+mlf $1==8      | STACK |
+               "jsr Mlf8"              | | |
+
+dvf $1==4      | STACK |
+               "jsr Dvf4"
+                                       | | |
+dvf $1==8      | STACK |
+               "jsr Dvf8"              | | |
+
+ngf $1==4      | STACK |
+               "jsr Ngf4"
+                                       | | |
+ngf $1==8      | STACK |
+               "jsr Ngf8"              | | |
+
+zrf $1==4      | STACK |
+               "jsr Zrf4"
+                                       | | |
+zrf $1==8      | STACK |
+               "jsr Zrf8"              | | |
+
+cmf $1==4      | STACK |
+               "jsr Cmf4"
+                                       | | |
+cmf $1==8      | STACK |
+               "jsr Cmf8"              | | |
+
+fef $1==4      | STACK |
+               "jsr Fef4"
+                                       | | |
+fef $1==8      | STACK |
+               "jsr Fef8"              | | |
+
+fif $1==4      | STACK |
+               "jsr Fif4"
+                                       | | |
+fif $1==8      | STACK |
+               "jsr Fif8"              | | |
+
+cfi            | STACK |
+               "jsr Cfi"               | | |
+
+cif            | STACK |
+               "jsr Cif"               | | |
+
+cuf            | STACK |
+               "jsr Cuf"               | | |
+
+cff            | STACK |
+               "jsr Cff"               | | |
+
+cfu            | STACK |
+               "jsr Cfu"               | | |
+
+lfr $1==8      | STACK |
+               "jsr Lfr8"              | | |
+
+ret $1==8      | STACK |
+               "jmp Ret8"              | | |
 
 /*************\
 *  M O V E S  *