summaryrefslogtreecommitdiff
path: root/tools/asm_processor/compile.sh
diff options
context:
space:
mode:
authorRémi Calixte <remicalixte.rmc@gmail.com>2021-03-16 11:27:03 +0100
committerRémi Calixte <remicalixte.rmc@gmail.com>2021-03-16 11:27:03 +0100
commitfe49a1d229fef47e7a4c78d2fea6b92a22892ddb (patch)
tree8719d75247ba15eea47a5f5d4a9f4e3d477a4396 /tools/asm_processor/compile.sh
parent841866478a047e1879804eeee93a2f6113fa5295 (diff)
parent6138b2ea49421579ec2857d7a8a491de6b1701b6 (diff)
Merge branch 'master' into decomp-unk_02024E64
Diffstat (limited to 'tools/asm_processor/compile.sh')
-rw-r--r--tools/asm_processor/compile.sh34
1 files changed, 21 insertions, 13 deletions
diff --git a/tools/asm_processor/compile.sh b/tools/asm_processor/compile.sh
index 786da404..8c367b3e 100644
--- a/tools/asm_processor/compile.sh
+++ b/tools/asm_processor/compile.sh
@@ -1,19 +1,27 @@
#!/bin/bash
CC="$1"
-shift
-AS="$1"
-shift
+AS="$2"
+OBJ="$3"
+SRC="$4"
-temp="$(mktemp)"
-../tools/asm_processor/asm_processor.py "$2" --assembler "$AS" > "$temp.c" &&
-$CC -c "$temp.c" -o "$1"
+PADDED_SRC="$(mktemp --suffix=.c padded-XXXXXX)"
+PADDED_OBJ="$(mktemp --suffix=.o padded-XXXXXX)"
-prelude=$(mktemp prelude.XXXXXX)
-cat ../include/macros.inc >> "$prelude"
-cat global.inc >> "$prelude"
+# Create a .c file replacing the nonmatching function with volatile int writes,
+# and compile.
+../tools/asm_processor/asm_processor.py "$SRC" --assembler "$AS" > "$PADDED_SRC"
+$CC -c "$PADDED_SRC" -o "$PADDED_OBJ"
-../tools/asm_processor/asm_processor.py "$2" --post-process "$1" --assembler "$AS" --asm-prelude "$prelude"
-arm-none-eabi-objcopy --remove-section .comment "$1" "$1"
-rm "$prelude"
-rm "$temp"
+PRELUDE=$(mktemp)
+cat ../include/macros.inc >> "$PRELUDE"
+cat global.inc >> "$PRELUDE"
+
+# Inject the matching assembly into the padded obj file.
+../tools/asm_processor/asm_processor.py "$SRC" --post-process "$PADDED_OBJ" --assembler "$AS" --asm-prelude "$PRELUDE"
+
+$DEVKITARM/bin/arm-none-eabi-objcopy --remove-section .comment "$PADDED_OBJ" "$OBJ"
+
+rm "$PADDED_SRC"
+rm "$PADDED_OBJ"
+rm "$PRELUDE"