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>
This commit is contained in:
Alex Bennée 2018-04-23 15:48:06 +01:00
parent 409c1c9cbd
commit 4f2cbcfb4d
6 changed files with 17 additions and 61 deletions

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -1,3 +1,5 @@
#include <unistd.h>
int main (void)
{
write (1, "hello\n", 6);

View file

@ -1,3 +1,4 @@
#include <unistd.h>
#ifdef TEST_CMOV

View file

@ -1,3 +1,5 @@
#include <unistd.h>
static long test_subqv (long a, long b)
{
long res;