This commit is contained in:
@@ -1,29 +1,15 @@
|
||||
include ../../Makefile.conf
|
||||
|
||||
#CC=clang -fno-integrated-as -fverbose-asm
|
||||
CC=gcc
|
||||
CFLAGS=-Wall -O2 -g -fno-strict-aliasing -fno-pic -fno-pie -no-pie
|
||||
DJGPP = i586-pc-msdosdjgpp-gcc
|
||||
DJFLAGS=-Wall -O2 -g -gdwarf-2 -fno-strict-aliasing -fno-pic -fno-pie -no-pie
|
||||
|
||||
# Force CC to gcc, as clang compiled binary segfaults
|
||||
CC = gcc
|
||||
|
||||
CFLAGS := $(DJFLAGS)
|
||||
ifeq ($(CC), clang)
|
||||
CFLAGS += -fno-integrated-as -fverbose-asm
|
||||
endif
|
||||
|
||||
LDFLAGS=
|
||||
|
||||
SOURCES = test-i386.c test-i386-code16.S test-i386-vm86.S
|
||||
ALL_SRC = $(SOURCES) $(wildcard *.h)
|
||||
|
||||
all: dosbin.exe
|
||||
|
||||
reffile.log: native32
|
||||
./native32 --common-tests > $@
|
||||
all: dosbin.exe native32 native64
|
||||
|
||||
# i386/x86_64 emulation test (test various opcodes) */
|
||||
dosbin.exe: $(ALL_SRC)
|
||||
$(DJGPP) $(DJFLAGS) $(LDFLAGS) -o $@ $(SOURCES) -lm
|
||||
$(DJGPP) $(CFLAGS) $(LDFLAGS) -o $@ $(SOURCES) -lm
|
||||
|
||||
native32: $(ALL_SRC)
|
||||
$(CC) -m32 $(CFLAGS) $(LDFLAGS) -o $@ $(SOURCES) -lm
|
||||
|
||||
4493
test/cpu/reffile.log
4493
test/cpu/reffile.log
File diff suppressed because it is too large
Load Diff
@@ -77,7 +77,3 @@ myfunc2:
|
||||
|
||||
|
||||
code16_end:
|
||||
|
||||
#ifdef __ELF__
|
||||
.section .note.GNU-stack,"",%progbits
|
||||
#endif
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
|
||||
#define exec_op glue(exec_, OP)
|
||||
#define exec_opq glue(glue(exec_, OP), q)
|
||||
#define exec_opl glue(glue(exec_, OP), l)
|
||||
@@ -57,10 +58,6 @@ void exec_opl(long s2, long s0, long s1, long iflags)
|
||||
void exec_opw(long s2, long s0, long s1, long iflags)
|
||||
{
|
||||
long res, flags;
|
||||
|
||||
if ((strcmp(stringify(OP), "shld") == 0 ||
|
||||
strcmp(stringify(OP), "shrd") == 0) && s1 > 16)
|
||||
return;
|
||||
res = s0;
|
||||
flags = iflags;
|
||||
EXECSHIFT("w", "w", res, s1, s2, flags);
|
||||
@@ -112,10 +109,6 @@ void exec_opl(long s2, long s0, long s1, long iflags)
|
||||
void exec_opw(long s2, long s0, long s1, long iflags)
|
||||
{
|
||||
long res, flags;
|
||||
|
||||
if ((strcmp(stringify(OP), "shld") == 0 ||
|
||||
strcmp(stringify(OP), "shrd") == 0) && s1 > 16)
|
||||
return;
|
||||
res = s0;
|
||||
flags = iflags;
|
||||
EXECSHIFT("w", "w", res, s1, s2, flags);
|
||||
@@ -151,7 +144,11 @@ void exec_op(long s2, long s0, long s1)
|
||||
exec_opq(s2, s0, s1, 0);
|
||||
#endif
|
||||
exec_opl(s2, s0, s1, 0);
|
||||
#ifdef OP_SHIFTD
|
||||
exec_opw(s2, s0, s1, 0);
|
||||
#else
|
||||
exec_opw(s2, s0, s1, 0);
|
||||
#endif
|
||||
#ifndef OP_NOBYTE
|
||||
exec_opb(s0, s1, 0);
|
||||
#endif
|
||||
|
||||
@@ -105,7 +105,3 @@ IF_msg1:
|
||||
.string "If you see a diff here, your Linux kernel is buggy, please update to 2.4.20 kernel\n$"
|
||||
|
||||
vm86_code_end:
|
||||
|
||||
#ifdef __ELF__
|
||||
.section .note.GNU-stack,"",%progbits
|
||||
#endif
|
||||
|
||||
@@ -2416,8 +2416,8 @@ static void test_enter(void)
|
||||
|
||||
#ifdef TEST_SSE
|
||||
|
||||
typedef int __m64 __attribute__ ((vector_size (8)));
|
||||
typedef float __m128 __attribute__ ((vector_size (16)));
|
||||
typedef int __m64 __attribute__ ((__mode__ (__V2SI__)));
|
||||
typedef float __m128 __attribute__ ((__mode__(__V4SF__)));
|
||||
|
||||
typedef union {
|
||||
double d[2];
|
||||
@@ -2591,7 +2591,7 @@ void test_sse_comi(double a1, double b1)
|
||||
}
|
||||
|
||||
/* Force %xmm0 usage to avoid the case where both register index are 0
|
||||
to test instruction decoding more extensively */
|
||||
to test intruction decoding more extensively */
|
||||
#define CVT_OP_XMM2MMX(op)\
|
||||
{\
|
||||
asm volatile (#op " %1, %0" : "=y" (r.q[0]) : "x" (a.dq) \
|
||||
@@ -3084,7 +3084,7 @@ int main(int argc, char **argv)
|
||||
if (argc >= 2 && strcmp(argv[1], "--common-tests") == 0)
|
||||
return 0;
|
||||
|
||||
// tests that will probably never produce the same output on different platforms
|
||||
// tests that will probabaly never produce the same output on different platforms
|
||||
test_exceptions();
|
||||
test_enter();
|
||||
|
||||
|
||||
Reference in New Issue
Block a user