tests/tcg/arm: fix up test-arm-iwmmxt test
authorAlex Bennée <alex.bennee@linaro.org>
Fri, 13 Apr 2018 13:56:17 +0000 (14:56 +0100)
committerAlex Bennée <alex.bennee@linaro.org>
Wed, 20 Jun 2018 19:22:34 +0000 (20:22 +0100)
We need to rename the source file to a .S so we can do a single-line
assemble and link invocation. We also specify the additional CFLAGS
for the compile as it's a non-standard ARM binary.

Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
[rth: force fpu configuration]
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
Tested-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
tests/tcg/arm/Makefile.target
tests/tcg/arm/test-arm-iwmmxt.S [new file with mode: 0644]
tests/tcg/arm/test-arm-iwmmxt.s [deleted file]

index 0312293dcac76cd26b01fd619608d7ef4ae9a50a..cadb3858901ed89d85aa9b6b51ec22deb5a42b2a 100644 (file)
@@ -8,9 +8,14 @@ ARM_SRC=$(SRC_PATH)/tests/tcg/arm
 # Set search path for all sources
 VPATH          += $(ARM_SRC)
 
+TESTS += hello-arm test-arm-iwmmxt
 
 hello-arm: CFLAGS+=-marm -ffreestanding
 hello-arm: LDFLAGS+=-nostdlib
 
+test-arm-iwmmxt: CFLAGS+=-marm -march=iwmmxt -mabi=aapcs -mfpu=fpv4-sp-d16
+test-arm-iwmmxt: test-arm-iwmmxt.S
+       $(CC) $(CFLAGS) $< -o $@ $(LDFLAGS)
+
 # On ARM Linux only supports 4k pages
 EXTRA_RUNS+=run-test-mmap-4096
diff --git a/tests/tcg/arm/test-arm-iwmmxt.S b/tests/tcg/arm/test-arm-iwmmxt.S
new file mode 100644 (file)
index 0000000..d647f94
--- /dev/null
@@ -0,0 +1,49 @@
+@ Checks whether iwMMXt is functional.
+.code  32
+.globl main
+
+main:
+ldr    r0, =data0
+ldr    r1, =data1
+ldr    r2, =data2
+#ifndef FPA
+wldrd  wr0, [r0, #0]
+wldrd  wr1, [r0, #8]
+wldrd  wr2, [r1, #0]
+wldrd  wr3, [r1, #8]
+wsubb  wr2, wr2, wr0
+wsubb  wr3, wr3, wr1
+wldrd  wr0, [r2, #0]
+wldrd  wr1, [r2, #8]
+waddb  wr0, wr0, wr2
+waddb  wr1, wr1, wr3
+wstrd  wr0, [r2, #0]
+wstrd  wr1, [r2, #8]
+#else
+ldfe   f0, [r0, #0]
+ldfe   f1, [r0, #8]
+ldfe   f2, [r1, #0]
+ldfe   f3, [r1, #8]
+adfdp  f2, f2, f0
+adfdp  f3, f3, f1
+ldfe   f0, [r2, #0]
+ldfe   f1, [r2, #8]
+adfd   f0, f0, f2
+adfd   f1, f1, f3
+stfe   f0, [r2, #0]
+stfe   f1, [r2, #8]
+#endif
+mov    r0, #1
+mov    r1, r2
+mov    r2, #0x11
+swi    #0x900004
+mov    r0, #0
+swi    #0x900001
+
+.data
+data0:
+.string        "aaaabbbbccccdddd"
+data1:
+.string        "bbbbccccddddeeee"
+data2:
+.string        "hvLLWs\x1fsdrs9\x1fNJ-\n"
diff --git a/tests/tcg/arm/test-arm-iwmmxt.s b/tests/tcg/arm/test-arm-iwmmxt.s
deleted file mode 100644 (file)
index d647f94..0000000
+++ /dev/null
@@ -1,49 +0,0 @@
-@ Checks whether iwMMXt is functional.
-.code  32
-.globl main
-
-main:
-ldr    r0, =data0
-ldr    r1, =data1
-ldr    r2, =data2
-#ifndef FPA
-wldrd  wr0, [r0, #0]
-wldrd  wr1, [r0, #8]
-wldrd  wr2, [r1, #0]
-wldrd  wr3, [r1, #8]
-wsubb  wr2, wr2, wr0
-wsubb  wr3, wr3, wr1
-wldrd  wr0, [r2, #0]
-wldrd  wr1, [r2, #8]
-waddb  wr0, wr0, wr2
-waddb  wr1, wr1, wr3
-wstrd  wr0, [r2, #0]
-wstrd  wr1, [r2, #8]
-#else
-ldfe   f0, [r0, #0]
-ldfe   f1, [r0, #8]
-ldfe   f2, [r1, #0]
-ldfe   f3, [r1, #8]
-adfdp  f2, f2, f0
-adfdp  f3, f3, f1
-ldfe   f0, [r2, #0]
-ldfe   f1, [r2, #8]
-adfd   f0, f0, f2
-adfd   f1, f1, f3
-stfe   f0, [r2, #0]
-stfe   f1, [r2, #8]
-#endif
-mov    r0, #1
-mov    r1, r2
-mov    r2, #0x11
-swi    #0x900004
-mov    r0, #0
-swi    #0x900001
-
-.data
-data0:
-.string        "aaaabbbbccccdddd"
-data1:
-.string        "bbbbccccddddeeee"
-data2:
-.string        "hvLLWs\x1fsdrs9\x1fNJ-\n"