mirror of
https://github.com/mupen64plus/mupen64plus-rsp-cxd4.git
synced 2024-05-14 01:59:35 -04:00
b2fd3d356a
When disabling ARCH_MIN_SSE2, the ANSI code path triggers several untraceable warnings that are nonsense (like integer union members giving warnings about pointer overflow). GCC purportedly has raised false positives with the overflow detection setting this high. Since it cannot give reliable reports in the ANSI code path for this RSP plugin (which does very little with what are actually pointers anyway in the vector unit), the level has been lowered down to 1.
72 lines
2.2 KiB
Bash
Executable file
72 lines
2.2 KiB
Bash
Executable file
mkdir -p obj
|
|
mkdir -p obj/vu
|
|
|
|
src="." # or an absolute path, like "/home/user/rsp"
|
|
obj="$src/obj"
|
|
|
|
OBJ_LIST="\
|
|
$obj/module.o \
|
|
$obj/su.o \
|
|
$obj/vu/vu.o \
|
|
$obj/vu/multiply.o \
|
|
$obj/vu/add.o \
|
|
$obj/vu/select.o \
|
|
$obj/vu/logical.o \
|
|
$obj/vu/divide.o"
|
|
|
|
FLAGS_ANSI="-fPIC -DPLUGIN_API_VERSION=0x0101 -mstackrealign -Wall -pedantic"
|
|
|
|
if [ `uname -m` == 'x86_64' ]; then
|
|
FLAGS_x86="\
|
|
-masm=intel \
|
|
-fPIC \
|
|
-DPLUGIN_API_VERSION=0x0101 \
|
|
-DARCH_MIN_SSE2 \
|
|
-march=native \
|
|
-mstackrealign \
|
|
-Wall \
|
|
-pedantic \
|
|
-Wall -Wshadow -Wredundant-decls -Wextra -Wcast-align -Wcast-qual \
|
|
-Wdisabled-optimization -Wformat=2 -Winit-self -Wlogical-op
|
|
-Wmissing-include-dirs -Wstrict-overflow=1 -Wundef -Wno-unused \
|
|
-Wno-variadic-macros -Wno-parentheses -fdiagnostics-show-option"
|
|
else
|
|
FLAGS_x86="\
|
|
-masm=intel \
|
|
-DPLUGIN_API_VERSION=0x0101 \
|
|
-DARCH_MIN_SSE2 \
|
|
-march=native \
|
|
-mstackrealign \
|
|
-Wall \
|
|
-pedantic \
|
|
-Wall -Wshadow -Wredundant-decls -Wextra -Wcast-align -Wcast-qual \
|
|
-Wdisabled-optimization -Wformat=2 -Winit-self -Wlogical-op
|
|
-Wmissing-include-dirs -Wstrict-overflow=1 -Wundef -Wno-unused \
|
|
-Wno-variadic-macros -Wno-parentheses -fdiagnostics-show-option"
|
|
fi
|
|
C_FLAGS=$FLAGS_x86 # default since Intel SIMD was the most tested
|
|
|
|
echo Compiling C source code...
|
|
cc -S -Os $C_FLAGS -o $obj/module.s $src/module.c
|
|
cc -S -O3 $C_FLAGS -o $obj/su.s $src/su.c
|
|
cc -S -O3 $C_FLAGS -o $obj/vu/vu.s $src/vu/vu.c
|
|
cc -S -O3 $C_FLAGS -o $obj/vu/multiply.s $src/vu/multiply.c
|
|
cc -S -O3 $C_FLAGS -o $obj/vu/add.s $src/vu/add.c
|
|
cc -S -O3 $C_FLAGS -o $obj/vu/select.s $src/vu/select.c
|
|
cc -S -O3 $C_FLAGS -o $obj/vu/logical.s $src/vu/logical.c
|
|
cc -S -O2 $C_FLAGS -o $obj/vu/divide.s $src/vu/divide.c
|
|
|
|
echo Assembling compiled sources...
|
|
as -o $obj/module.o $obj/module.s
|
|
as -o $obj/su.o $obj/su.s
|
|
as -o $obj/vu/vu.o $obj/vu/vu.s
|
|
as -o $obj/vu/multiply.o $obj/vu/multiply.s
|
|
as -o $obj/vu/add.o $obj/vu/add.s
|
|
as -o $obj/vu/select.o $obj/vu/select.s
|
|
as -o $obj/vu/logical.o $obj/vu/logical.s
|
|
as -o $obj/vu/divide.o $obj/vu/divide.s
|
|
|
|
echo Linking assembled object files...
|
|
ld --shared -o $obj/rspdebug.so -lc $OBJ_LIST
|
|
strip -o $obj/rsp.so $obj/rspdebug.so --strip-all
|