@@ -71,3 +71,10 @@ cscope.*
tags
TAGS
*~
+tests/m68k/fabs
+tests/m68k/fdiv
+tests/m68k/fmove
+tests/m68k/fmovecr
+tests/m68k/fmovem
+tests/m68k/fmul
+tests/m68k/fsub
@@ -1,14 +1,10 @@
-TESTS=fmovecr fmove fmovem
+TESTS=fmovecr fmove fmovem fsub fdiv fmul fabs
all: $(TESTS)
%: %.S
m68k-linux-gnu-gcc -m68040 -nostartfiles -nodefaultlibs -nostdlib -o $@ $<
-fmovecr: fmovecr.S
-fmove: fmove.S
-fmovem: fmovem.S
-
.PHONY: clean
clean:
new file mode 100644
@@ -0,0 +1,9 @@
+ .include "trap.i"
+
+ .text
+ .globl _start
+_start:
+ fabs.b #-55, %fp0
+ fmove.l #-1024, %fp1
+ fabs.x %fp1
+ exit 0
new file mode 100644
@@ -0,0 +1,10 @@
+ .include "trap.i"
+
+ .text
+ .globl _start
+_start:
+# Pi
+ fmove.b #10, %fp0
+ fmove.b #3, %fp1
+ fdiv.x %fp1, %fp0
+ exit 0
@@ -2,9 +2,8 @@
.data
tmp: .long 0x88776655
-pi: .long 0x40000000
- .long 0xc90fdaa2
- .long 0x2168C235
+pi: .long 0x40000000, 0xc90fdaa2, 0x2168C235
+store: .long 0, 0, 0
.text
.globl _start
@@ -12,6 +11,12 @@ _start:
lea pi,%a0
move.l (%a0), %d0
fmove.x (%a0), %fp4
+ fmove.b %fp4, store
+ fmove.w %fp4, store
+ fmove.l %fp4, store
+ fmove.s %fp4, store
+ fmove.d %fp4, store
+ fmove.x %fp4, store
# Dn
move.l #-1, %d3
@@ -48,7 +53,7 @@ _start:
fmove.w #0xFABC,%fp1
fmove.l #0xFABCDEFA,%fp2
fmove.s #0xDEADBEAF,%fp3
- fmove.d #0xFABCDEFADEADBEAF,%fp4
+ fmove.d #0f4.29497E+09,%fp4
fmove.x #0xFABCDEFADEADBEAF12345678,%fp5
fmove.p #0xFABCDEFADEADBEAF12345678,%fp6
new file mode 100644
@@ -0,0 +1,9 @@
+ .include "trap.i"
+
+ .text
+ .globl _start
+_start:
+ fmove.b #255, %fp0
+ fmove.w #1023, %fp1
+ fmul.x %fp1, %fp0
+ exit 0
new file mode 100644
@@ -0,0 +1,11 @@
+ .include "trap.i"
+
+ .text
+ .globl _start
+_start:
+# Pi
+ fmovecr.x #0x00, %fp0
+ fmove.b #3, %fp1
+# 0.1415926535897932
+ fsub.x %fp1, %fp0
+ exit 0