mirror of https://github.com/zeldaret/tmc.git
move handwritten asm to src
This commit is contained in:
parent
f431f7def4
commit
2fe33a05b8
|
@ -36,14 +36,14 @@ start_vector:
|
|||
bx r1
|
||||
_080000F0:
|
||||
b start_vector
|
||||
sp_irq: .4byte gUnk_03007FA0
|
||||
sp_usr: .4byte gUnk_03007F00
|
||||
sp_irq: .4byte irq_stack_begin
|
||||
sp_usr: .4byte usr_stack_begin
|
||||
INTR_VECTOR_BUF: .4byte 0x03007FFC
|
||||
intr_main: .4byte ram_IntrMain
|
||||
.ifdef EU
|
||||
unk_function: .4byte sub_08000118
|
||||
unk_function: .4byte fill_rq_stack
|
||||
.else
|
||||
.ifdef DEMO_JP
|
||||
unk_function: .4byte sub_08000118
|
||||
unk_function: .4byte fill_rq_stack
|
||||
.endif
|
||||
.endif
|
|
@ -5,77 +5,48 @@
|
|||
|
||||
.text
|
||||
|
||||
.ifdef EU
|
||||
thumb_func_start sub_08000118
|
||||
sub_08000118: @ 0x08000118
|
||||
add r0, pc, #0x28
|
||||
.ifndef USA
|
||||
.ifndef DEMO_USA
|
||||
.ifndef JP
|
||||
thumb_func_start fill_rq_stack
|
||||
fill_rq_stack: // fill iqr and user stack with 'MCZ3'
|
||||
adr r0, 1f
|
||||
ldm r0!, {r1, r2, r3}
|
||||
_0800011C:
|
||||
0:
|
||||
subs r2, #4
|
||||
str r1, [r2]
|
||||
cmp r2, r3
|
||||
bgt _0800011C
|
||||
bgt 0b
|
||||
bx lr
|
||||
|
||||
non_word_aligned_thumb_func_start sub_08000126
|
||||
sub_08000126: @ 0x08000126
|
||||
add r0, pc, #0x1C
|
||||
// unused
|
||||
// returns the maximum values reached by irq stack (r0) and usr stack (r1)
|
||||
check_stack_threshold:
|
||||
adr r0, 1f
|
||||
ldm r0!, {r1, r2, r3}
|
||||
_0800012A:
|
||||
0:
|
||||
ldr r0, [r3]
|
||||
adds r3, #4
|
||||
cmp r0, r1
|
||||
beq _0800012A
|
||||
cmp r0, r1 // cmp against magic
|
||||
beq 0b
|
||||
|
||||
subs r2, #0xa0
|
||||
_08000134:
|
||||
0:
|
||||
ldr r0, [r2]
|
||||
adds r2, #4
|
||||
cmp r0, r1
|
||||
beq _08000134
|
||||
cmp r0, r1 // cmp against magic
|
||||
beq 0b
|
||||
|
||||
subs r1, r2, #4
|
||||
subs r0, r3, #4
|
||||
bx lr
|
||||
.align 2, 0
|
||||
_08000144EU:
|
||||
.byte 0x33, 0x5A, 0x43, 0x4D
|
||||
.4byte gUnk_03007FA0
|
||||
.4byte gUnk_03006C14
|
||||
.else
|
||||
.ifdef DEMO_JP @ TODO deduplicate
|
||||
thumb_func_start sub_08000118
|
||||
sub_08000118: @ 0x08000118
|
||||
add r0, pc, #0x28
|
||||
ldm r0!, {r1, r2, r3}
|
||||
_0800011C:
|
||||
subs r2, #4
|
||||
str r1, [r2]
|
||||
cmp r2, r3
|
||||
bgt _0800011C
|
||||
bx lr
|
||||
|
||||
non_word_aligned_thumb_func_start sub_08000126
|
||||
sub_08000126: @ 0x08000126
|
||||
add r0, pc, #0x1C
|
||||
ldm r0!, {r1, r2, r3}
|
||||
_0800012A:
|
||||
ldr r0, [r3]
|
||||
adds r3, #4
|
||||
cmp r0, r1
|
||||
beq _0800012A
|
||||
subs r2, #0xa0
|
||||
_08000134:
|
||||
ldr r0, [r2]
|
||||
adds r2, #4
|
||||
cmp r0, r1
|
||||
beq _08000134
|
||||
subs r1, r2, #4
|
||||
subs r0, r3, #4
|
||||
bx lr
|
||||
.align 2, 0
|
||||
_08000144EU:
|
||||
.byte 0x33, 0x5A, 0x43, 0x4D
|
||||
.4byte gUnk_03007FA0
|
||||
.4byte gUnk_03006C14
|
||||
1:
|
||||
.byte '3, 'Z, 'C, 'M // r1
|
||||
.4byte irq_stack_begin // r2
|
||||
.4byte usr_stack_top // r3
|
||||
.endif
|
||||
.endif
|
||||
.endif
|
||||
|
32
linker.ld
32
linker.ld
|
@ -255,7 +255,7 @@ SECTIONS {
|
|||
. = 0x00006A94; ram_0x80b2b58 = .; /* TODO 0x80b2b58 in unusedLabel_080B2AA8*/
|
||||
. = 0x00006B14; ram_0x80b2bd8 = .; /* 0x80b2bd8 */
|
||||
. = 0x00006B24; ram_0x80b2be8 = .; /* 0x80b2be8 */
|
||||
. = 0x00006C14; gUnk_03006C14 = .;
|
||||
. = 0x00006C14; usr_stack_top = .;
|
||||
#else
|
||||
. = 0x00006580; ram_DrawDirect = .;
|
||||
. = 0x0000659C; ram_sub_080ADA04 = .;
|
||||
|
@ -264,8 +264,8 @@ SECTIONS {
|
|||
. = 0x0000694C; ram_0x80b2bd8 = .; /* 0x80b2bd8 */
|
||||
. = 0x0000695C; ram_0x80b2be8 = .; /* 0x80b2be8 */
|
||||
#endif
|
||||
. = 0x00007F00; gUnk_03007F00 = .;
|
||||
. = 0x00007FA0; gUnk_03007FA0 = .;
|
||||
. = 0x00007F00; usr_stack_begin = .;
|
||||
. = 0x00007FA0; irq_stack_begin = .;
|
||||
. = 0x00007FFA; gUnk_03007FFA = .;
|
||||
. = 0x00008000;
|
||||
} >iwram
|
||||
|
@ -273,27 +273,27 @@ SECTIONS {
|
|||
rom : ALIGN(2) {
|
||||
|
||||
/* handwritten assembly */
|
||||
asm/crt0.o(.text);
|
||||
asm/veneer.o(.text);
|
||||
asm/src/crt0.o(.text);
|
||||
asm/src/veneer.o(.text);
|
||||
data/data_08000360.o(.rodata);
|
||||
asm/code_08000E44.o(.text);
|
||||
asm/src/code_08000E44.o(.text);
|
||||
asm/lib/libgcc.o(.text);
|
||||
asm/code_08000F10.o(.text);
|
||||
asm/src/code_08000F10.o(.text);
|
||||
data/data_08000F54.o(.rodata);
|
||||
asm/enemy.o(.text);
|
||||
asm/src/enemy.o(.text);
|
||||
src/droptables.o(.rodata);
|
||||
asm/code_08001A7C.o(.text);
|
||||
asm/src/code_08001A7C.o(.text);
|
||||
data/gfx/sprite_ptrs.o(.rodata);
|
||||
asm/code_08003FC4.o(.text);
|
||||
asm/code_080043E8.o(.text);
|
||||
asm/src/code_08003FC4.o(.text);
|
||||
asm/src/code_080043E8.o(.text);
|
||||
data/gfx/link_animations.o(.rodata);
|
||||
asm/code_08007CAC.o(.text);
|
||||
asm/src/code_08007CAC.o(.text);
|
||||
data/data_08007DF4.o(.rodata);
|
||||
asm/player.o(.text);
|
||||
asm/src/player.o(.text);
|
||||
/* scripts */
|
||||
data/scripts.o(.text);
|
||||
asm/script.o(.text);
|
||||
asm/projectileUpdate.o(.text);
|
||||
asm/src/script.o(.text);
|
||||
asm/src/projectileUpdate.o(.text);
|
||||
|
||||
/* C source compiled with interworking */
|
||||
src/interrupts.o(.text);
|
||||
|
@ -883,7 +883,7 @@ SECTIONS {
|
|||
src/eeprom.o(.text);
|
||||
*libc.a:memcpy.o(.text);
|
||||
/* handwritten assembly in arm mode */
|
||||
asm/intr.o(.text);
|
||||
asm/src/intr.o(.text);
|
||||
|
||||
/* data */
|
||||
data/data_080B2A70.o(.rodata);
|
||||
|
|
|
@ -48,7 +48,10 @@ def parse_map(non_matching_funcs):
|
|||
if dir == 'src':
|
||||
src += size
|
||||
elif dir == 'asm':
|
||||
asm += size
|
||||
if filepath.find("asm/src/") != -1 or filepath.find("asm/lib/") != -1:
|
||||
src += size
|
||||
else:
|
||||
asm += size
|
||||
elif dir == 'data':
|
||||
# scripts
|
||||
src_data += size
|
||||
|
|
Loading…
Reference in New Issue