aboutsummaryrefslogtreecommitdiff
path: root/tests/tcg/alpha
diff options
context:
space:
mode:
authorAlex Bennée <alex.bennee@linaro.org>2018-04-23 15:48:06 +0100
committerAlex Bennée <alex.bennee@linaro.org>2018-06-20 20:22:34 +0100
commit4f2cbcfb4dc398b10ef7ede2069b1e05704981b4 (patch)
tree88bf362556b3ff42e680642b0af4fdaec6ac28a7 /tests/tcg/alpha
parent409c1c9cbd9a6715d5f5663a8b3404ea193d0137 (diff)
tests/tcg/alpha: add Alpha specific tests
These tests did use their own crt.o stub however that is a little stone age so we drop crt.S and just statically link to the cross compilers libraries. Signed-off-by: Alex Bennée <alex.bennee@linaro.org> Reviewed-by: Richard Henderson <richard.henderson@linaro.org> Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org> Tested-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
Diffstat (limited to 'tests/tcg/alpha')
-rw-r--r--tests/tcg/alpha/Makefile35
-rw-r--r--tests/tcg/alpha/Makefile.target12
-rw-r--r--tests/tcg/alpha/crt.s26
-rw-r--r--tests/tcg/alpha/hello-alpha.c2
-rw-r--r--tests/tcg/alpha/test-cond.c1
-rw-r--r--tests/tcg/alpha/test-ovf.c2
6 files changed, 17 insertions, 61 deletions
diff --git a/tests/tcg/alpha/Makefile b/tests/tcg/alpha/Makefile
deleted file mode 100644
index 2b1f03d048..0000000000
--- a/tests/tcg/alpha/Makefile
+++ /dev/null
@@ -1,35 +0,0 @@
-CROSS=alpha-linux-gnu-
-CC=$(CROSS)gcc
-AS=$(CROSS)as
-
-SIM=../../alpha-linux-user/qemu-alpha
-
-CFLAGS=-O
-LINK=$(CC) -o $@ crt.o $< -nostdlib
-
-TESTS=test-cond test-cmov
-
-all: hello-alpha $(TESTS)
-
-hello-alpha: hello-alpha.o crt.o
- $(LINK)
-
-test-cond: test-cond.o crt.o
- $(LINK)
-
-test-cmov.o: test-cond.c
- $(CC) -c $(CFLAGS) -DTEST_CMOV -o $@ $<
-
-test-cmov: test-cmov.o crt.o
- $(LINK)
-
-test-ovf: test-ovf.o crt.o
- $(LINK)
-
-check: $(TESTS)
- for f in $(TESTS); do $(SIM) $$f || exit 1; done
-
-clean:
- $(RM) *.o *~ hello-alpha $(TESTS)
-
-.PHONY: clean all check
diff --git a/tests/tcg/alpha/Makefile.target b/tests/tcg/alpha/Makefile.target
index bedf1b6444..a585080328 100644
--- a/tests/tcg/alpha/Makefile.target
+++ b/tests/tcg/alpha/Makefile.target
@@ -2,5 +2,17 @@
#
# Alpha specific tweaks
+ALPHA_SRC=$(SRC_PATH)/tests/tcg/alpha
+VPATH+=$(ALPHA_SRC)
+
+ALPHA_TESTS=hello-alpha test-cond test-cmov test-ovf
+TESTS+=$(ALPHA_TESTS)
+
+test-cmov: EXTRA_CFLAGS=-DTEST_CMOV
+test-cmov: test-cond.c
+ $(CC) $(CFLAGS) $(EXTRA_CFLAGS) $< -o $@ $(LDFLAGS)
+
+run-test-cmov: test-cmov
+
# On Alpha Linux only supports 8k pages
EXTRA_RUNS+=run-test-mmap-8192
diff --git a/tests/tcg/alpha/crt.s b/tests/tcg/alpha/crt.s
deleted file mode 100644
index 31af8825bc..0000000000
--- a/tests/tcg/alpha/crt.s
+++ /dev/null
@@ -1,26 +0,0 @@
- .text
-
- .globl _start
- .ent _start,0
-_start:
- .frame $15,0,$15
- br $29,1f
-1: ldgp $29, 0($29)
- .prologue 0
- ldq $27,main($29) !literal!1
- jsr $26,($27)
- or $0,$0,$16
- .end _start
-
- .globl _exit
-_exit:
- lda $0,1
- callsys
-
- call_pal 0
-
- .globl write
-write:
- lda $0,4
- callsys
- ret
diff --git a/tests/tcg/alpha/hello-alpha.c b/tests/tcg/alpha/hello-alpha.c
index 79892e6522..84e43b2fc4 100644
--- a/tests/tcg/alpha/hello-alpha.c
+++ b/tests/tcg/alpha/hello-alpha.c
@@ -1,3 +1,5 @@
+#include <unistd.h>
+
int main (void)
{
write (1, "hello\n", 6);
diff --git a/tests/tcg/alpha/test-cond.c b/tests/tcg/alpha/test-cond.c
index 74adffaa69..e625313b3e 100644
--- a/tests/tcg/alpha/test-cond.c
+++ b/tests/tcg/alpha/test-cond.c
@@ -1,3 +1,4 @@
+#include <unistd.h>
#ifdef TEST_CMOV
diff --git a/tests/tcg/alpha/test-ovf.c b/tests/tcg/alpha/test-ovf.c
index 01c80e7525..17892f1e89 100644
--- a/tests/tcg/alpha/test-ovf.c
+++ b/tests/tcg/alpha/test-ovf.c
@@ -1,3 +1,5 @@
+#include <unistd.h>
+
static long test_subqv (long a, long b)
{
long res;