mirror of https://github.com/Nonannet/copapy.git
Compare commits
3 Commits
83ce6ce0e7
...
afc442ada6
| Author | SHA1 | Date |
|---|---|---|
|
|
afc442ada6 | |
|
|
436a09c1ea | |
|
|
cabfda4ec6 |
|
|
@ -24,6 +24,11 @@ class data_writer():
|
||||||
self._data: list[tuple[str, bytes, int]] = []
|
self._data: list[tuple[str, bytes, int]] = []
|
||||||
self.byteorder: ByteOrder = byteorder
|
self.byteorder: ByteOrder = byteorder
|
||||||
|
|
||||||
|
def copy(self):
|
||||||
|
cp = data_writer(self.byteorder)
|
||||||
|
cp._data = self._data.copy()
|
||||||
|
return cp
|
||||||
|
|
||||||
def write_int(self, value: int, num_bytes: int = 4, signed: bool = False) -> None:
|
def write_int(self, value: int, num_bytes: int = 4, signed: bool = False) -> None:
|
||||||
self._data.append((f"INT {value}", value.to_bytes(length=num_bytes, byteorder=self.byteorder, signed=signed), 0))
|
self._data.append((f"INT {value}", value.to_bytes(length=num_bytes, byteorder=self.byteorder, signed=signed), 0))
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,13 +1,13 @@
|
||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
set -eux
|
set -eu
|
||||||
|
|
||||||
ARCH=${1:-x86_64}
|
ARCH=${1:-x86_64}
|
||||||
|
|
||||||
case "$ARCH" in
|
case "$ARCH" in
|
||||||
(x86_64|arm-v6|arm-v7|arm-v7-thumb|all)
|
(x86_64|arm-v6|arm-v7|arm-v7-thumb|arm-v7m-thumb|all)
|
||||||
;;
|
;;
|
||||||
(*)
|
(*)
|
||||||
echo "Usage: $0 [x86_64|arm-v6|arm-v7|arm-v6-thumb|all]"
|
echo "Usage: $0 [x86_64|arm-v6|arm-v7|arm-v6-thumb|arm-v7m-thumb|all]"
|
||||||
exit 1
|
exit 1
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
|
|
@ -109,20 +109,20 @@ if [[ "$ARCH" == "arm-v7" || "$ARCH" == "all" ]]; then
|
||||||
fi
|
fi
|
||||||
|
|
||||||
#######################################
|
#######################################
|
||||||
# ARM v7 thumb
|
# ARM v7 thumb Cortex-A
|
||||||
#######################################
|
#######################################
|
||||||
if [[ "$ARCH" == "arm-v7-thumb" || "$ARCH" == "all" ]]; then
|
if [[ "$ARCH" == "arm-v7-thumb" || "$ARCH" == "all" ]]; then
|
||||||
echo "--------------arm-v7-thumb 32 bit----------------"
|
echo "--------------arm-v7a-thumb 32 bit----------------"
|
||||||
|
|
||||||
LIBGCC=$(arm-none-eabi-gcc -print-libgcc-file-name)
|
LIBGCC=$(arm-none-eabi-gcc -print-libgcc-file-name)
|
||||||
|
|
||||||
arm-none-eabi-gcc -fno-pic -ffunction-sections \
|
arm-none-eabi-gcc -fno-pic -ffunction-sections \
|
||||||
-march=armv7e-m -mfpu=fpv4-sp-d16 -mfloat-abi=hard -mthumb \
|
-march=armv7-a -mfpu=neon-vfpv3 -mfloat-abi=hard -mthumb \
|
||||||
-c $SRC -O3 -o build/stencils/stencils.o
|
-c $SRC -O3 -o build/stencils/stencils.o
|
||||||
|
|
||||||
arm-none-eabi-ld -r \
|
arm-none-eabi-ld -r \
|
||||||
build/stencils/stencils.o \
|
build/stencils/stencils.o \
|
||||||
build/musl/musl_objects_armv7thumb.o \
|
build/musl/musl_objects_armv7.o \
|
||||||
$LIBGCC \
|
$LIBGCC \
|
||||||
-o $DEST/stencils_armv7thumb_O3.o
|
-o $DEST/stencils_armv7thumb_O3.o
|
||||||
|
|
||||||
|
|
@ -140,3 +140,36 @@ if [[ "$ARCH" == "arm-v7-thumb" || "$ARCH" == "all" ]]; then
|
||||||
src/coparun/mem_man.c \
|
src/coparun/mem_man.c \
|
||||||
-o build/runner/coparun-armv7thumb
|
-o build/runner/coparun-armv7thumb
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
#######################################
|
||||||
|
# ARM v7 thumb Cortex-M
|
||||||
|
#######################################
|
||||||
|
if [[ "$ARCH" == "arm-v7m-thumb" || "$ARCH" == "all" ]]; then
|
||||||
|
echo "--------------arm-v7m-thumb 32 bit----------------"
|
||||||
|
|
||||||
|
LIBGCC=$(arm-none-eabi-gcc -print-libgcc-file-name)
|
||||||
|
|
||||||
|
arm-none-eabi-gcc -fno-pic -ffunction-sections \
|
||||||
|
-march=armv7e-m -mfpu=fpv4-sp-d16 -mfloat-abi=hard -mthumb \
|
||||||
|
-c $SRC -O3 -o build/stencils/stencils.o
|
||||||
|
|
||||||
|
arm-none-eabi-ld -r \
|
||||||
|
build/stencils/stencils.o \
|
||||||
|
build/musl/musl_objects_armv7mthumb.o \
|
||||||
|
$LIBGCC \
|
||||||
|
-o $DEST/stencils_armv7mthumb_O3.o
|
||||||
|
|
||||||
|
arm-none-eabi-objdump -d -x \
|
||||||
|
$DEST/stencils_armv7mthumb_O3.o \
|
||||||
|
> build/stencils/stencils_armv7mthumb_O3.asm
|
||||||
|
|
||||||
|
arm-linux-gnueabihf-gcc \
|
||||||
|
-march=armv7-a -mfpu=neon-vfpv3 -mfloat-abi=hard -mthumb -static \
|
||||||
|
-Wall -Wextra -Wconversion -Wsign-conversion \
|
||||||
|
-Wshadow -Wstrict-overflow -O3 \
|
||||||
|
-DENABLE_LOGGING \
|
||||||
|
src/coparun/runmem.c \
|
||||||
|
src/coparun/coparun.c \
|
||||||
|
src/coparun/mem_man.c \
|
||||||
|
-o build/runner/coparun-armv7thumb
|
||||||
|
fi
|
||||||
|
|
@ -26,8 +26,11 @@ sh ../packobjs.sh arm-none-eabi-gcc arm-none-eabi-ld /object_files/musl_objects_
|
||||||
# Armv7
|
# Armv7
|
||||||
sh ../packobjs.sh arm-none-eabi-gcc arm-none-eabi-ld /object_files/musl_objects_armv7.o "-march=armv7-a -mfpu=neon-vfpv3 -mfloat-abi=hard -marm"
|
sh ../packobjs.sh arm-none-eabi-gcc arm-none-eabi-ld /object_files/musl_objects_armv7.o "-march=armv7-a -mfpu=neon-vfpv3 -mfloat-abi=hard -marm"
|
||||||
|
|
||||||
|
# Armv7 Thumb for Cortex-A
|
||||||
|
sh ../packobjs.sh arm-none-eabi-gcc arm-none-eabi-ld /object_files/musl_objects_armv7thumb.o "-march=armv7-a -mfpu=neon-vfpv3 -mfloat-abi=hard -mthumb"
|
||||||
|
|
||||||
# Armv7 Thumb for Cortex-M3..7
|
# Armv7 Thumb for Cortex-M3..7
|
||||||
sh ../packobjs.sh arm-none-eabi-gcc arm-none-eabi-ld /object_files/musl_objects_armv7thumb.o "-march=armv7e-m -mfpu=fpv4-sp-d16 -mfloat-abi=hard -mthumb"
|
sh ../packobjs.sh arm-none-eabi-gcc arm-none-eabi-ld /object_files/musl_objects_armv7mthumb.o "-march=armv7e-m -mfpu=fpv4-sp-d16 -mfloat-abi=hard -mthumb"
|
||||||
|
|
||||||
#sh ../packobjs.sh mips mips-linux-gnu-gcc-13 mips-linux-gnu-ld
|
#sh ../packobjs.sh mips mips-linux-gnu-gcc-13 mips-linux-gnu-ld
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -26,7 +26,7 @@ ar x ../../musl/lib/libc.a sqrtf.o logf.o expf.o sqrt.o
|
||||||
ar x ../../musl/lib/libc.a logf_data.o __tandf.o __cosdf.o __sindf.o
|
ar x ../../musl/lib/libc.a logf_data.o __tandf.o __cosdf.o __sindf.o
|
||||||
ar x ../../musl/lib/libc.a fabsf.o scalbn.o floor.o floorf.o exp2f_data.o powf.o powf_data.o
|
ar x ../../musl/lib/libc.a fabsf.o scalbn.o floor.o floorf.o exp2f_data.o powf.o powf_data.o
|
||||||
ar x ../../musl/lib/libc.a __rem_pio2f.o __math_invalid.o __math_invalidf.o __stack_chk_fail.o
|
ar x ../../musl/lib/libc.a __rem_pio2f.o __math_invalid.o __math_invalidf.o __stack_chk_fail.o
|
||||||
ar x ../../musl/lib/libc.a __math_divzerof.o __math_oflowf.o __rem_pio2_large.o __math_uflowf.o __math_xflowf.o __rsqrt_tab.o
|
ar x ../../musl/lib/libc.a __math_divzerof.o __math_oflowf.o __rem_pio2_large.o __math_uflowf.o __math_xflowf.o sqrt_data.o
|
||||||
|
|
||||||
# Check out .lo (PIC)
|
# Check out .lo (PIC)
|
||||||
ar x ../../musl/lib/libc.a sinf.lo cosf.lo tanf.lo asinf.lo acosf.lo atanf.lo atan2f.lo
|
ar x ../../musl/lib/libc.a sinf.lo cosf.lo tanf.lo asinf.lo acosf.lo atanf.lo atan2f.lo
|
||||||
|
|
@ -34,7 +34,7 @@ ar x ../../musl/lib/libc.a sqrtf.lo logf.lo expf.lo sqrt.lo
|
||||||
ar x ../../musl/lib/libc.a logf_data.lo __tandf.lo __cosdf.lo __sindf.lo
|
ar x ../../musl/lib/libc.a logf_data.lo __tandf.lo __cosdf.lo __sindf.lo
|
||||||
ar x ../../musl/lib/libc.a fabsf.lo scalbn.lo floor.lo floorf.o exp2f_data.lo powf.lo powf_data.lo
|
ar x ../../musl/lib/libc.a fabsf.lo scalbn.lo floor.lo floorf.o exp2f_data.lo powf.lo powf_data.lo
|
||||||
ar x ../../musl/lib/libc.a __rem_pio2f.lo __math_invalid.lo __math_invalidf.lo __stack_chk_fail.lo
|
ar x ../../musl/lib/libc.a __rem_pio2f.lo __math_invalid.lo __math_invalidf.lo __stack_chk_fail.lo
|
||||||
ar x ../../musl/lib/libc.a __math_divzerof.lo __math_oflowf.lo __rem_pio2_large.lo __math_uflowf.lo __math_xflowf.lo __rsqrt_tab.lo
|
ar x ../../musl/lib/libc.a __math_divzerof.lo __math_oflowf.lo __rem_pio2_large.lo __math_uflowf.lo __math_xflowf.lo sqrt_data.lo
|
||||||
|
|
||||||
cd ../../musl
|
cd ../../musl
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -36,15 +36,20 @@ arm-none-eabi-gcc -march=armv6 -mfpu=vfp -mfloat-abi=hard -marm $FLAGS -$OPT -c
|
||||||
LIBGCC=$(arm-none-eabi-gcc -print-libgcc-file-name)
|
LIBGCC=$(arm-none-eabi-gcc -print-libgcc-file-name)
|
||||||
arm-none-eabi-ld -r $STMP /object_files/musl_objects_armv6.o $LIBGCC -o $DEST/stencils_armv6_$OPT.o
|
arm-none-eabi-ld -r $STMP /object_files/musl_objects_armv6.o $LIBGCC -o $DEST/stencils_armv6_$OPT.o
|
||||||
|
|
||||||
# ARMv7 hardware fp
|
# ARMv7 hardware fp for Cortex-A
|
||||||
arm-none-eabi-gcc -march=armv7-a -mfpu=neon-vfpv3 -mfloat-abi=hard -marm $FLAGS -$OPT -c $SRC -o $STMP
|
arm-none-eabi-gcc -march=armv7-a -mfpu=neon-vfpv3 -mfloat-abi=hard -marm $FLAGS -$OPT -c $SRC -o $STMP
|
||||||
LIBGCC=$(arm-none-eabi-gcc -print-libgcc-file-name)
|
LIBGCC=$(arm-none-eabi-gcc -print-libgcc-file-name)
|
||||||
arm-none-eabi-ld -r $STMP /object_files/musl_objects_armv7.o $LIBGCC -o $DEST/stencils_armv7_$OPT.o
|
arm-none-eabi-ld -r $STMP /object_files/musl_objects_armv7.o $LIBGCC -o $DEST/stencils_armv7_$OPT.o
|
||||||
|
|
||||||
|
# ARMv7 Thumb for Cortex-A with hardware fp
|
||||||
|
arm-none-eabi-gcc -march=armv7-a -mfpu=neon-vfpv3 -mfloat-abi=hard -mthumb $FLAGS -$OPT -c $SRC -o $STMP
|
||||||
|
LIBGCC=$(arm-none-eabi-gcc -print-libgcc-file-name)
|
||||||
|
arm-none-eabi-ld -r $STMP /object_files/musl_objects_armv7thumb.o $LIBGCC -o $DEST/stencils_armv7thumb_$OPT.o
|
||||||
|
|
||||||
# Armv7 Thumb for Cortex-M3..7 hardware fp
|
# Armv7 Thumb for Cortex-M3..7 hardware fp
|
||||||
arm-none-eabi-gcc -march=armv7e-m -mfpu=fpv4-sp-d16 -mfloat-abi=hard -mthumb $FLAGS -$OPT -c $SRC -o $STMP
|
arm-none-eabi-gcc -march=armv7e-m -mfpu=fpv4-sp-d16 -mfloat-abi=hard -mthumb $FLAGS -$OPT -c $SRC -o $STMP
|
||||||
LIBGCC=$(arm-none-eabi-gcc -print-libgcc-file-name)
|
LIBGCC=$(arm-none-eabi-gcc -print-libgcc-file-name)
|
||||||
arm-none-eabi-ld -r $STMP /object_files/musl_objects_armv7thumb.o $LIBGCC -o $DEST/stencils_armv7thumb_$OPT.o
|
arm-none-eabi-ld -r $STMP /object_files/musl_objects_armv7mthumb.o $LIBGCC -o $DEST/stencils_armv7mthumb_$OPT.o
|
||||||
|
|
||||||
# PowerPC64LE
|
# PowerPC64LE
|
||||||
# powerpc64le-linux-gnu-gcc-13 $FLAGS -$OPT -c $SRC -o $DEST/stencils_ppc64le_$OPT.o
|
# powerpc64le-linux-gnu-gcc-13 $FLAGS -$OPT -c $SRC -o $DEST/stencils_ppc64le_$OPT.o
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue