| 1 | S390X_SRC=$(SRC_PATH)/tests/tcg/s390x |
| 2 | VPATH+=$(S390X_SRC) |
| 3 | CFLAGS+=-march=zEC12 -m64 |
| 4 | |
| 5 | %.o: %.c |
| 6 | $(CC) $(CFLAGS) $(EXTRA_CFLAGS) -c $< -o $@ |
| 7 | |
| 8 | config-cc.mak: Makefile |
| 9 | $(quiet-@)( \ |
| 10 | $(call cc-option,-march=z14, CROSS_CC_HAS_Z14); \ |
| 11 | $(call cc-option,-march=z15, CROSS_CC_HAS_Z15)) 3> config-cc.mak |
| 12 | -include config-cc.mak |
| 13 | |
| 14 | TESTS+=hello-s390x |
| 15 | TESTS+=csst |
| 16 | TESTS+=ipm |
| 17 | TESTS+=exrl-trt |
| 18 | TESTS+=exrl-trtr |
| 19 | TESTS+=pack |
| 20 | TESTS+=mie3-compl |
| 21 | TESTS+=mie3-mvcrl |
| 22 | TESTS+=mie3-sel |
| 23 | TESTS+=mvo |
| 24 | TESTS+=mvc |
| 25 | TESTS+=shift |
| 26 | TESTS+=trap |
| 27 | TESTS+=signals-s390x |
| 28 | TESTS+=branch-relative-long |
| 29 | TESTS+=noexec |
| 30 | TESTS+=div |
| 31 | TESTS+=clst |
| 32 | TESTS+=long-double |
| 33 | TESTS+=cdsg |
| 34 | TESTS+=chrl |
| 35 | TESTS+=rxsbg |
| 36 | TESTS+=ex-relative-long |
| 37 | TESTS+=ex-branch |
| 38 | TESTS+=mxdb |
| 39 | TESTS+=epsw |
| 40 | TESTS+=larl |
| 41 | TESTS+=mdeb |
| 42 | TESTS+=cgebra |
| 43 | TESTS+=clgebr |
| 44 | TESTS+=clc |
| 45 | TESTS+=laalg |
| 46 | TESTS+=add-logical-with-carry |
| 47 | TESTS+=lae |
| 48 | TESTS+=cvd |
| 49 | TESTS+=cvb |
| 50 | TESTS+=ts |
| 51 | TESTS+=ex-smc |
| 52 | TESTS+=divide-to-integer |
| 53 | TESTS+=stckf |
| 54 | |
| 55 | cdsg: CFLAGS+=-pthread |
| 56 | cdsg: LDFLAGS+=-pthread |
| 57 | |
| 58 | # The following tests contain inline assembly that requires inlining, |
| 59 | # and thus cannot be built with -O0. |
| 60 | rxsbg: CFLAGS+=-O2 |
| 61 | divide-to-integer: CFLAGS+=-O2 |
| 62 | |
| 63 | cgebra: LDFLAGS+=-lm |
| 64 | clgebr: LDFLAGS+=-lm |
| 65 | divide-to-integer: LDFLAGS+=-lm |
| 66 | |
| 67 | include $(S390X_SRC)/pgm-specification.mak |
| 68 | $(PGM_SPECIFICATION_TESTS): pgm-specification-user.o |
| 69 | $(PGM_SPECIFICATION_TESTS): LDFLAGS+=pgm-specification-user.o |
| 70 | TESTS += $(PGM_SPECIFICATION_TESTS) |
| 71 | |
| 72 | Z13_TESTS=vistr |
| 73 | Z13_TESTS+=lcbb |
| 74 | Z13_TESTS+=locfhr |
| 75 | Z13_TESTS+=vcksm |
| 76 | Z13_TESTS+=vstl |
| 77 | Z13_TESTS+=vrep |
| 78 | Z13_TESTS+=precise-smc-user |
| 79 | Z13_TESTS+=prno-trng |
| 80 | $(Z13_TESTS): CFLAGS+=-march=z13 -O2 |
| 81 | TESTS+=$(Z13_TESTS) |
| 82 | |
| 83 | ifneq ($(CROSS_CC_HAS_Z14),) |
| 84 | Z14_TESTS=fma vfminmax |
| 85 | fma: float.h |
| 86 | fma: LDFLAGS+=-lm |
| 87 | vfminmax: LDFLAGS+=-lm |
| 88 | vfminmax: float.h |
| 89 | $(Z14_TESTS): CFLAGS+=-march=z14 -O2 |
| 90 | TESTS+=$(Z14_TESTS) |
| 91 | endif |
| 92 | |
| 93 | ifneq ($(CROSS_CC_HAS_Z15),) |
| 94 | Z15_TESTS=vxeh2_vs |
| 95 | Z15_TESTS+=vxeh2_vcvt |
| 96 | Z15_TESTS+=vxeh2_vlstr |
| 97 | Z15_TESTS+=vxeh2_vstrs |
| 98 | $(Z15_TESTS): CFLAGS+=-march=z15 -O2 |
| 99 | TESTS+=$(Z15_TESTS) |
| 100 | endif |
| 101 | |
| 102 | ifneq ($(GDB),) |
| 103 | GDB_SCRIPT=$(SRC_PATH)/tests/guest-debug/run-test.py |
| 104 | |
| 105 | run-gdbstub-signals-s390x: signals-s390x |
| 106 | $(call run-test, $@, $(GDB_SCRIPT) \ |
| 107 | --gdb $(GDB) \ |
| 108 | --qemu $(QEMU) --qargs "$(QEMU_OPTS)" \ |
| 109 | --bin $< --test $(S390X_SRC)/gdbstub/test-signals-s390x.py, \ |
| 110 | mixing signals and debugging) |
| 111 | |
| 112 | hello-s390x-asm: CFLAGS+=-nostdlib |
| 113 | |
| 114 | run-gdbstub-svc: hello-s390x-asm |
| 115 | $(call run-test, $@, $(GDB_SCRIPT) \ |
| 116 | --gdb $(GDB) \ |
| 117 | --qemu $(QEMU) --qargs "$(QEMU_OPTS)" \ |
| 118 | --bin $< --test $(S390X_SRC)/gdbstub/test-svc.py, \ |
| 119 | single-stepping svc) |
| 120 | |
| 121 | EXTRA_RUNS += run-gdbstub-signals-s390x run-gdbstub-svc |
| 122 | endif |
| 123 | |
| 124 | # MVX versions of sha512 |
| 125 | sha512-mvx: CFLAGS=-march=z13 -mvx -O3 |
| 126 | sha512-mvx: sha512.c |
| 127 | $(CC) $(CFLAGS) $(EXTRA_CFLAGS) $< -o $@ $(LDFLAGS) |
| 128 | |
| 129 | TESTS+=sha512-mvx |