mirror of
https://github.com/herumi/xbyak
synced 2024-11-20 16:06:14 -07:00
134 lines
3.2 KiB
Makefile
134 lines
3.2 KiB
Makefile
TARGET = make_nm normalize_prefix bad_address misc cvt_test cvt_test32 noexception misc32 detect_x32 avx10_test
|
|
XBYAK_INC=../xbyak/xbyak.h ../xbyak/xbyak_mnemonic.h
|
|
UNAME_S=$(shell uname -s)
|
|
ifeq ($(shell ./detect_x32),x32)
|
|
X32?=1
|
|
endif
|
|
BIT=32
|
|
ifeq ($(shell uname -m),x86_64)
|
|
BIT=64
|
|
endif
|
|
ONLY_64BIT=0
|
|
ifeq ($(UNAME_S),Darwin)
|
|
# 32-bit binary is not supported
|
|
ONLY_64BIT=1
|
|
endif
|
|
ifeq ($(findstring MINGW64,$(UNAME_S)),MINGW64)
|
|
ONLY_64BIT=1
|
|
endif
|
|
ifeq ($(ONLY_64BIT),0)
|
|
TARGET += jmp address
|
|
endif
|
|
|
|
ifeq ($(BIT),64)
|
|
TARGET += jmp64 address64 apx
|
|
endif
|
|
|
|
all: $(TARGET)
|
|
|
|
CFLAGS_WARN=-Wall -Wextra -Wformat=2 -Wcast-qual -Wwrite-strings -Wfloat-equal -Wpointer-arith
|
|
|
|
CFLAGS=-O2 -Wall -I.. -I. $(CFLAGS_WARN) $(CXXFLAGS) $(CPPFLAGS) $(LDFLAGS) #-std=c++0x
|
|
make_nm:
|
|
$(CXX) $(CFLAGS) make_nm.cpp -o $@
|
|
normalize_prefix: normalize_prefix.cpp $(XBYAK_INC)
|
|
$(CXX) $(CFLAGS) normalize_prefix.cpp -o $@
|
|
test_mmx: test_mmx.cpp $(XBYAK_INC)
|
|
$(CXX) $(CFLAGS) test_mmx.cpp -o $@ -lpthread
|
|
jmp: jmp.cpp $(XBYAK_INC)
|
|
$(CXX) $(CFLAGS) jmp.cpp -o $@ -m32
|
|
jmp64: jmp.cpp $(XBYAK_INC)
|
|
$(CXX) $(CFLAGS) jmp.cpp -o $@ -m64
|
|
address: address.cpp $(XBYAK_INC)
|
|
$(CXX) $(CFLAGS) address.cpp -o $@ -m32
|
|
address64: address.cpp $(XBYAK_INC)
|
|
$(CXX) $(CFLAGS) address.cpp -o $@ -m64
|
|
bad_address: bad_address.cpp $(XBYAK_INC)
|
|
$(CXX) $(CFLAGS) bad_address.cpp -o $@
|
|
misc: misc.cpp $(XBYAK_INC)
|
|
$(CXX) $(CFLAGS) misc.cpp -o $@
|
|
misc32: misc.cpp $(XBYAK_INC)
|
|
$(CXX) $(CFLAGS) misc.cpp -o $@ -DXBYAK32
|
|
cvt_test: cvt_test.cpp $(XBYAK_INC)
|
|
$(CXX) $(CFLAGS) $< -o $@
|
|
cvt_test32: cvt_test.cpp $(XBYAK_INC)
|
|
$(CXX) $(CFLAGS) $< -o $@ -DXBYAK32
|
|
noexception: noexception.cpp $(XBYAK_INC)
|
|
$(CXX) $(CFLAGS) $< -o $@ -fno-exceptions
|
|
apx: apx.cpp $(XBYAK_INC)
|
|
$(CXX) $(CFLAGS) apx.cpp -o $@
|
|
avx10_test: avx10_test.cpp $(XBYAK_INC)
|
|
$(CXX) $(CFLAGS) avx10_test.cpp -o $@ -DXBYAK64
|
|
|
|
TEST_FILES=old.txt new-ymm.txt bf16.txt comp.txt misc.txt convert.txt minmax.txt saturation.txt
|
|
xed_test:
|
|
@set -e; \
|
|
for target in $(addprefix avx10/, $(TEST_FILES)); do \
|
|
./test_by_xed.sh $$target || exit 1; \
|
|
done
|
|
|
|
test_nm: normalize_prefix $(TARGET)
|
|
$(MAKE) -C ../gen
|
|
ifneq ($(ONLY_64BIT),1)
|
|
CXX=$(CXX) ./test_nm.sh
|
|
CXX=$(CXX) ./test_nm.sh noexcept
|
|
CXX=$(CXX) ./test_nm.sh Y
|
|
CXX=$(CXX) ./test_nm.sh avx512
|
|
CXX=$(CXX) ./test_address.sh
|
|
./jmp
|
|
./cvt_test32
|
|
endif
|
|
./bad_address
|
|
./misc
|
|
./misc32
|
|
./cvt_test
|
|
ifeq ($(BIT),64)
|
|
CXX=$(CXX) ./test_address.sh 64
|
|
ifneq ($(X32),1)
|
|
CXX=$(CXX) ./test_nm.sh 64
|
|
CXX=$(CXX) ./test_nm.sh Y64
|
|
endif
|
|
./jmp64
|
|
./apx
|
|
./avx10_test
|
|
endif
|
|
|
|
test_avx: normalize_prefix
|
|
ifneq ($(ONLY_64BIT),0)
|
|
CXX=$(CXX) ./test_avx.sh
|
|
CXX=$(CXX) ./test_avx.sh Y
|
|
endif
|
|
ifeq ($(BIT),64)
|
|
CXX=$(CXX) ./test_avx.sh 64
|
|
ifneq ($(X32),1)
|
|
CXX=$(CXX) ./test_avx.sh Y64
|
|
endif
|
|
endif
|
|
|
|
test_avx512: normalize_prefix
|
|
ifneq ($(ONLY_64BIT),0)
|
|
CXX=$(CXX) ./test_avx512.sh
|
|
endif
|
|
ifeq ($(BIT),64)
|
|
CXX=$(CXX) ./test_avx512.sh 64
|
|
endif
|
|
|
|
test_avx10: avx10_test
|
|
./avx10_test
|
|
|
|
detect_x32: detect_x32.c
|
|
$(CC) $< -o $@
|
|
|
|
test: detect_x32
|
|
$(MAKE) test_nm
|
|
$(MAKE) test_avx
|
|
$(MAKE) test_avx512
|
|
|
|
clean:
|
|
$(RM) a.asm *.lst *.obj *.o $(TARGET) lib_run nm.cpp nm_frame make_512 avx10_test detect_x32
|
|
|
|
lib_run: lib_test.cpp lib_run.cpp lib.h
|
|
$(CXX) $(CFLAGS) lib_run.cpp lib_test.cpp -o lib_run
|
|
make_nm: make_nm.cpp $(XBYAK_INC)
|
|
|
|
.PHONY: test
|