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