summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGriffinR <griffin.g.richards@gmail.com>2020-07-17 18:19:06 -0400
committerGitHub <noreply@github.com>2020-07-17 18:19:06 -0400
commit1cf2470aac038fce48a5777e36b00554af90d910 (patch)
tree31a0afce3cc927221ef5229a8d2fb0f5754e1a54
parent96fd719a1906346db062daf13e1107b3c4b220ed (diff)
parent98441b119996ff1dc9575d925479213864d293f7 (diff)
Merge pull request #1097 from PokeCodec/asm
Allow assembly on Clang
-rw-r--r--berry_fix/asm/loader.s12
-rw-r--r--berry_fix/payload/asm/crt0.s8
-rw-r--r--berry_fix/payload/asm/libagbsyscall.s12
-rw-r--r--libagbsyscall/libagbsyscall.s120
-rw-r--r--src/crt0.s80
-rw-r--r--src/libgcnmultiboot.s86
6 files changed, 159 insertions, 159 deletions
diff --git a/berry_fix/asm/loader.s b/berry_fix/asm/loader.s
index 39e0b768a..a78014078 100644
--- a/berry_fix/asm/loader.s
+++ b/berry_fix/asm/loader.s
@@ -75,21 +75,21 @@ _send: @ 14c
_150:
bl _recv
bne _150
- mov r2, 0
+ mov r2, #0
strh r2, [r0, 0xa] @ SIOMLT_SEND
- cmp r1, 0
+ cmp r1, #0
bne _150
mov r2, 0x8000
_16c:
- mov r1, 0
+ mov r1, #0
_170:
strh r1, [r0, 0xa] @ SIOMLT_SEND
bl _recv
bne _150
cmp r1, r2
bne _16c
- lsr r2, 5
- cmp r1, 0
+ lsr r2, #5
+ cmp r1, #0
bne _170
ldr r3, =BerryFixMBHeaderGameCode
ldrh r2, [r3]
@@ -105,7 +105,7 @@ _1a0:
bne _1a0
cmp r1, r2
bne _1a0
- mov r1, 0
+ mov r1, #0
strh r1, [r0, 0xa] @ SIOMLT_SEND
ldr r0, =_data_2f0
ldr r1, =gCode
diff --git a/berry_fix/payload/asm/crt0.s b/berry_fix/payload/asm/crt0.s
index 872a63018..2bca00636 100644
--- a/berry_fix/payload/asm/crt0.s
+++ b/berry_fix/payload/asm/crt0.s
@@ -9,10 +9,10 @@
.align 2, 0
.global Init
Init:
- mov r0, PSR_IRQ_MODE
+ mov r0, #PSR_IRQ_MODE
msr cpsr_cf, r0
ldr sp, sp_irq
- mov r0, PSR_SYS_MODE
+ mov r0, #PSR_SYS_MODE
msr cpsr_cf, r0
ldr sp, sp_sys
ldr r1, =INTR_VECTOR
@@ -34,8 +34,8 @@ sp_irq: .word IWRAM_END - 0x60
.align 2, 0
.global IntrMain
IntrMain: @ 0x2010048
- mov ip, REG_BASE
- add r3, ip, OFFSET_REG_IE
+ mov ip, #REG_BASE
+ add r3, ip, #OFFSET_REG_IE
ldr r2, [r3]
and r1, r2, r2, lsr #16
mov r2, #0
diff --git a/berry_fix/payload/asm/libagbsyscall.s b/berry_fix/payload/asm/libagbsyscall.s
index ea8ef3e89..9548e80d2 100644
--- a/berry_fix/payload/asm/libagbsyscall.s
+++ b/berry_fix/payload/asm/libagbsyscall.s
@@ -7,39 +7,39 @@
thumb_func_start CpuSet
CpuSet: @ 81E3B64
- swi 0xB
+ svc 0xB
bx lr
thumb_func_end CpuSet
thumb_func_start Div
Div: @ 81E3B68
- swi 0x6
+ svc 0x6
bx lr
thumb_func_end Div
thumb_func_start Mod
Mod:
- swi 0x6
+ svc 0x6
adds r0, r1, 0
bx lr
thumb_func_end Mod
thumb_func_start LZ77UnCompVram
LZ77UnCompVram: @ 81E3B6C
- swi 0x12
+ svc 0x12
bx lr
thumb_func_end LZ77UnCompVram
thumb_func_start RegisterRamReset
RegisterRamReset: @ 81E3B80
- swi 0x1
+ svc 0x1
bx lr
thumb_func_end RegisterRamReset
thumb_func_start VBlankIntrWait
VBlankIntrWait: @ 81E3BA0
movs r2, 0
- swi 0x5
+ svc 0x5
bx lr
thumb_func_end VBlankIntrWait
diff --git a/libagbsyscall/libagbsyscall.s b/libagbsyscall/libagbsyscall.s
index 893235e32..00c40d08e 100644
--- a/libagbsyscall/libagbsyscall.s
+++ b/libagbsyscall/libagbsyscall.s
@@ -55,8 +55,8 @@
.ifdef L_IntrWait
thumb_func_start IntrWait
IntrWait:
- mov r2, #0
- swi 4
+ movs r2, #0
+ svc #4
bx lr
thumb_func_end IntrWait
.endif
@@ -64,7 +64,7 @@ IntrWait:
.ifdef L_RegisterRamReset
thumb_func_start RegisterRamReset
RegisterRamReset:
- swi 1
+ svc #1
bx lr
thumb_func_end RegisterRamReset
.endif
@@ -72,7 +72,7 @@ RegisterRamReset:
.ifdef L_Sqrt
thumb_func_start Sqrt
Sqrt:
- swi 8
+ svc #8
bx lr
thumb_func_end Sqrt
.endif
@@ -80,7 +80,7 @@ Sqrt:
.ifdef L_MusicPlayerOpen
thumb_func_start MusicPlayerOpen
MusicPlayerOpen:
- swi 32
+ svc #32
bx lr
thumb_func_end MusicPlayerOpen
.endif
@@ -88,8 +88,8 @@ MusicPlayerOpen:
.ifdef L_SoundBiasReset
thumb_func_start SoundBiasReset
SoundBiasReset:
- mov r0, #0
- swi 25
+ movs r0, #0
+ svc #25
bx lr
thumb_func_end SoundBiasReset
.endif
@@ -97,7 +97,7 @@ SoundBiasReset:
.ifdef L_SoundDriverVSyncOn
thumb_func_start SoundDriverVSyncOn
SoundDriverVSyncOn:
- swi 41
+ svc #41
bx lr
thumb_func_end SoundDriverVSyncOn
.endif
@@ -105,7 +105,7 @@ SoundDriverVSyncOn:
.ifdef L_Mod
thumb_func_start Mod
Mod:
- swi 6
+ svc #6
mov r0, r1
bx lr
thumb_func_end Mod
@@ -114,8 +114,8 @@ Mod:
.ifdef L_VBlankIntrWait
thumb_func_start VBlankIntrWait
VBlankIntrWait:
- mov r2, #0
- swi 5
+ movs r2, #0
+ svc #5
bx lr
thumb_func_end VBlankIntrWait
.endif
@@ -123,7 +123,7 @@ VBlankIntrWait:
.ifdef L_MusicPlayerStart
thumb_func_start MusicPlayerStart
MusicPlayerStart:
- swi 33
+ svc #33
bx lr
thumb_func_end MusicPlayerStart
.endif
@@ -131,7 +131,7 @@ MusicPlayerStart:
.ifdef L_SoundDriverVSyncOff
thumb_func_start SoundDriverVSyncOff
SoundDriverVSyncOff:
- swi 40
+ svc #40
bx lr
thumb_func_end SoundDriverVSyncOff
.endif
@@ -139,34 +139,34 @@ SoundDriverVSyncOff:
.ifdef L_HuffUnComp
thumb_func_start HuffUnComp
HuffUnComp:
- swi 19
+ svc #19
bx lr
thumb_func_end HuffUnComp
.endif
.ifdef L_SoftResetExram
- thumb_func_start SoftResetExram
+ arm_func_start SoftResetExram
SoftResetExram:
ldr r3, =REG_IME
- mov r2, #0
+ movs r2, #0
strb r2, [r3, #0]
ldr r3, =SOFT_RESET_DIRECT_BUF
- mov r2, #1
+ movs r2, #1
strb r2, [r3, #0]
- sub r3, #SOFT_RESET_DIRECT_BUF - 0x3007f00
+ subs r3, #SOFT_RESET_DIRECT_BUF - 0x3007f00
mov sp, r3
- mov r2, #RESET_EX_WRAM_FLAG
- bic r0, r2
- swi 1
- swi 0
+ movs r2, #RESET_EX_WRAM_FLAG
+ bics r0, r2
+ svc #1
+ svc #0
.pool
- thumb_func_end SoftResetExram
+ arm_func_end SoftResetExram
.endif
.ifdef L_MusicPlayerFadeOut
thumb_func_start MusicPlayerFadeOut
MusicPlayerFadeOut:
- swi 36
+ svc #36
bx lr
thumb_func_end MusicPlayerFadeOut
.endif
@@ -174,7 +174,7 @@ MusicPlayerFadeOut:
.ifdef L_LZ77UnCompWram
thumb_func_start LZ77UnCompWram
LZ77UnCompWram:
- swi 17
+ svc #17
bx lr
thumb_func_end LZ77UnCompWram
.endif
@@ -182,7 +182,7 @@ LZ77UnCompWram:
.ifdef L_SoundDriverMain
thumb_func_start SoundDriverMain
SoundDriverMain:
- swi 28
+ svc #28
bx lr
thumb_func_end SoundDriverMain
.endif
@@ -190,7 +190,7 @@ SoundDriverMain:
.ifdef L_SoundBiasChange
thumb_func_start SoundBiasChange
SoundBiasChange:
- swi 25
+ svc #25
bx lr
thumb_func_end SoundBiasChange
.endif
@@ -198,7 +198,7 @@ SoundBiasChange:
.ifdef L_LZ77UnCompVram
thumb_func_start LZ77UnCompVram
LZ77UnCompVram:
- swi 18
+ svc #18
bx lr
thumb_func_end LZ77UnCompVram
.endif
@@ -206,7 +206,7 @@ LZ77UnCompVram:
.ifdef L_ArcTan2
thumb_func_start ArcTan2
ArcTan2:
- swi 10
+ svc #10
bx lr
thumb_func_end ArcTan2
.endif
@@ -214,7 +214,7 @@ ArcTan2:
.ifdef L_MusicPlayerStop
thumb_func_start MusicPlayerStop
MusicPlayerStop:
- swi 34
+ svc #34
bx lr
thumb_func_end MusicPlayerStop
.endif
@@ -222,7 +222,7 @@ MusicPlayerStop:
.ifdef L_DivArm
thumb_func_start DivArm
DivArm:
- swi 7
+ svc #7
bx lr
thumb_func_end DivArm
.endif
@@ -230,7 +230,7 @@ DivArm:
.ifdef L_ModArm
thumb_func_start ModArm
ModArm:
- swi 7
+ svc #7
mov r0, r1
bx lr
thumb_func_end ModArm
@@ -239,7 +239,7 @@ ModArm:
.ifdef L_SoundDriverVSync
thumb_func_start SoundDriverVSync
SoundDriverVSync:
- swi 29
+ svc #29
bx lr
thumb_func_end SoundDriverVSync
.endif
@@ -247,7 +247,7 @@ SoundDriverVSync:
.ifdef L_SoundDriverInit
thumb_func_start SoundDriverInit
SoundDriverInit:
- swi 26
+ svc #26
bx lr
thumb_func_end SoundDriverInit
.endif
@@ -255,7 +255,7 @@ SoundDriverInit:
.ifdef L_BgAffineSet
thumb_func_start BgAffineSet
BgAffineSet:
- swi 14
+ svc #14
bx lr
thumb_func_end BgAffineSet
.endif
@@ -263,7 +263,7 @@ BgAffineSet:
.ifdef L_Diff8bitUnFilterWram
thumb_func_start Diff8bitUnFilterWram
Diff8bitUnFilterWram:
- swi 22
+ svc #22
bx lr
thumb_func_end Diff8bitUnFilterWram
.endif
@@ -272,7 +272,7 @@ Diff8bitUnFilterWram:
thumb_func_start MultiBoot
MultiBoot:
mov r1, #1
- swi 37
+ svc #37
bx lr
thumb_func_end MultiBoot
.endif
@@ -280,7 +280,7 @@ MultiBoot:
.ifdef L_MidiKey2Freq
thumb_func_start MidiKey2Freq
MidiKey2Freq:
- swi 31
+ svc #31
bx lr
thumb_func_end MidiKey2Freq
.endif
@@ -288,7 +288,7 @@ MidiKey2Freq:
.ifdef L_Div
thumb_func_start Div
Div:
- swi 6
+ svc #6
bx lr
thumb_func_end Div
.endif
@@ -296,7 +296,7 @@ Div:
.ifdef L_Diff8bitUnFilterVram
thumb_func_start Diff8bitUnFilterVram
Diff8bitUnFilterVram:
- swi 23
+ svc #23
bx lr
thumb_func_end Diff8bitUnFilterVram
.endif
@@ -304,7 +304,7 @@ Diff8bitUnFilterVram:
.ifdef L_ArcTan
thumb_func_start ArcTan
ArcTan:
- swi 9
+ svc #9
bx lr
thumb_func_end ArcTan
.endif
@@ -312,7 +312,7 @@ ArcTan:
.ifdef L_ObjAffineSet
thumb_func_start ObjAffineSet
ObjAffineSet:
- swi 15
+ svc #15
bx lr
thumb_func_end ObjAffineSet
.endif
@@ -321,15 +321,15 @@ ObjAffineSet:
thumb_func_start SoftResetRom
SoftResetRom:
ldr r3, =REG_IME
- mov r2, #0
+ movs r2, #0
strb r2, [r3, #0]
ldr r3, =SOFT_RESET_DIRECT_BUF
- mov r2, #0
+ movs r2, #0
strb r2, [r3, #0]
sub r3, #SOFT_RESET_DIRECT_BUF - 0x3007f00
mov sp, r3
- swi 1
- swi 0
+ svc #1
+ svc #0
.pool
thumb_func_end SoftResetRom
.endif
@@ -337,7 +337,7 @@ SoftResetRom:
.ifdef L_SoundDriverMode
thumb_func_start SoundDriverMode
SoundDriverMode:
- swi 27
+ svc #27
bx lr
thumb_func_end SoundDriverMode
.endif
@@ -345,7 +345,7 @@ SoundDriverMode:
.ifdef L_RLUnCompWram
thumb_func_start RLUnCompWram
RLUnCompWram:
- swi 20
+ svc #20
bx lr
thumb_func_end RLUnCompWram
.endif
@@ -353,7 +353,7 @@ RLUnCompWram:
.ifdef L_BitUnPack
thumb_func_start BitUnPack
BitUnPack:
- swi 16
+ svc #16
bx lr
thumb_func_end BitUnPack
.endif
@@ -361,7 +361,7 @@ BitUnPack:
.ifdef L_SoundChannelClear
thumb_func_start SoundChannelClear
SoundChannelClear:
- swi 30
+ svc #30
bx lr
thumb_func_end SoundChannelClear
.endif
@@ -369,7 +369,7 @@ SoundChannelClear:
.ifdef L_CpuFastSet
thumb_func_start CpuFastSet
CpuFastSet:
- swi 12
+ svc #12
bx lr
thumb_func_end CpuFastSet
.endif
@@ -377,7 +377,7 @@ CpuFastSet:
.ifdef L_CpuSet
thumb_func_start CpuSet
CpuSet:
- swi 11
+ svc #11
bx lr
thumb_func_end CpuSet
.endif
@@ -385,7 +385,7 @@ CpuSet:
.ifdef L_Diff16bitUnFilter
thumb_func_start Diff16bitUnFilter
Diff16bitUnFilter:
- swi 24
+ svc #24
bx lr
thumb_func_end Diff16bitUnFilter
.endif
@@ -393,8 +393,8 @@ Diff16bitUnFilter:
.ifdef L_SoundBiasSet
thumb_func_start SoundBiasSet
SoundBiasSet:
- mov r0, #1
- swi 25
+ movs r0, #1
+ svc #25
bx lr
thumb_func_end SoundBiasSet
.endif
@@ -402,7 +402,7 @@ SoundBiasSet:
.ifdef L_MusicPlayerContinue
thumb_func_start MusicPlayerContinue
MusicPlayerContinue:
- swi 35
+ svc #35
bx lr
thumb_func_end MusicPlayerContinue
.endif
@@ -411,12 +411,12 @@ MusicPlayerContinue:
thumb_func_start SoftReset
SoftReset:
ldr r3, =REG_IME
- mov r2, #0
+ movs r2, #0
strb r2, [r3, #0]
ldr r1, =0x3007f00
mov sp, r1
- swi 1
- swi 0
+ svc #1
+ svc #0
.pool
thumb_func_end SoftReset
.endif
@@ -424,7 +424,7 @@ SoftReset:
.ifdef L_RLUnCompVram
thumb_func_start RLUnCompVram
RLUnCompVram:
- swi 21
+ svc #21
bx lr
thumb_func_end RLUnCompVram
.endif
diff --git a/src/crt0.s b/src/crt0.s
index 3ab711713..cb7c93a6b 100644
--- a/src/crt0.s
+++ b/src/crt0.s
@@ -82,10 +82,10 @@ GPIOPortReadEnable: @ 80000C8
.align 2, 0
.global Init
Init: @ 8000204
- mov r0, PSR_IRQ_MODE
+ mov r0, #PSR_IRQ_MODE
msr cpsr_cf, r0
ldr sp, sp_irq
- mov r0, PSR_SYS_MODE
+ mov r0, #PSR_SYS_MODE
msr cpsr_cf, r0
ldr sp, sp_sys
ldr r1, =INTR_VECTOR
@@ -106,91 +106,91 @@ sp_irq: .word IWRAM_END - 0x60
.align 2, 0
.global IntrMain
IntrMain: @ 8000248
- mov r3, REG_BASE
- add r3, r3, 0x200
- ldr r2, [r3, OFFSET_REG_IE - 0x200]
- ldrh r1, [r3, OFFSET_REG_IME - 0x200]
+ mov r3, #REG_BASE
+ add r3, r3, #OFFSET_REG_IE
+ ldr r2, [r3]
+ ldrh r1, [r3, #OFFSET_REG_IME - 0x200]
mrs r0, spsr
- stmdb sp!, {r0-r3,lr}
- mov r0, 0
- strh r0, [r3, OFFSET_REG_IME - 0x200]
- and r1, r2, r2, lsr 16
- mov r12, 0
- ands r0, r1, INTR_FLAG_VCOUNT
+ stmfd sp!, {r0-r3,lr}
+ mov r0, #0
+ strh r0, [r3, #OFFSET_REG_IME - 0x200]
+ and r1, r2, r2, lsr #16
+ mov r12, #0
+ ands r0, r1, #INTR_FLAG_VCOUNT
bne IntrMain_FoundIntr
add r12, r12, 0x4
mov r0, 0x1
- strh r0, [r3, OFFSET_REG_IME - 0x200]
- ands r0, r1, INTR_FLAG_SERIAL
+ strh r0, [r3, #OFFSET_REG_IME - 0x200]
+ ands r0, r1, #INTR_FLAG_SERIAL
bne IntrMain_FoundIntr
add r12, r12, 0x4
- ands r0, r1, INTR_FLAG_TIMER3
+ ands r0, r1, #INTR_FLAG_TIMER3
bne IntrMain_FoundIntr
add r12, r12, 0x4
- ands r0, r1, INTR_FLAG_HBLANK
+ ands r0, r1, #INTR_FLAG_HBLANK
bne IntrMain_FoundIntr
add r12, r12, 0x4
- ands r0, r1, INTR_FLAG_VBLANK
+ ands r0, r1, #INTR_FLAG_VBLANK
bne IntrMain_FoundIntr
add r12, r12, 0x4
- ands r0, r1, INTR_FLAG_TIMER0
+ ands r0, r1, #INTR_FLAG_TIMER0
bne IntrMain_FoundIntr
add r12, r12, 0x4
- ands r0, r1, INTR_FLAG_TIMER1
+ ands r0, r1, #INTR_FLAG_TIMER1
bne IntrMain_FoundIntr
add r12, r12, 0x4
- ands r0, r1, INTR_FLAG_TIMER2
+ ands r0, r1, #INTR_FLAG_TIMER2
bne IntrMain_FoundIntr
add r12, r12, 0x4
- ands r0, r1, INTR_FLAG_DMA0
+ ands r0, r1, #INTR_FLAG_DMA0
bne IntrMain_FoundIntr
add r12, r12, 0x4
- ands r0, r1, INTR_FLAG_DMA1
+ ands r0, r1, #INTR_FLAG_DMA1
bne IntrMain_FoundIntr
add r12, r12, 0x4
- ands r0, r1, INTR_FLAG_DMA2
+ ands r0, r1, #INTR_FLAG_DMA2
bne IntrMain_FoundIntr
add r12, r12, 0x4
- ands r0, r1, INTR_FLAG_DMA3
+ ands r0, r1, #INTR_FLAG_DMA3
bne IntrMain_FoundIntr
add r12, r12, 0x4
- ands r0, r1, INTR_FLAG_KEYPAD
+ ands r0, r1, #INTR_FLAG_KEYPAD
bne IntrMain_FoundIntr
add r12, r12, 0x4
- ands r0, r1, INTR_FLAG_GAMEPAK
- strbne r0, [r3, OFFSET_REG_SOUNDCNT_X - 0x200]
+ ands r0, r1, #INTR_FLAG_GAMEPAK
+ strbne r0, [r3, #REG_SOUNDCNT_X - REG_IE]
bne . @ spin
IntrMain_FoundIntr:
- strh r0, [r3, OFFSET_REG_IF - 0x200]
+ strh r0, [r3, #OFFSET_REG_IF - 0x200]
bic r2, r2, r0
ldr r0, =gSTWIStatus
ldr r0, [r0]
ldrb r0, [r0, 0xA]
mov r1, 0x8
- mov r0, r1, lsl r0
- orr r0, r0, INTR_FLAG_GAMEPAK
- orr r1, r0, INTR_FLAG_SERIAL | INTR_FLAG_TIMER3 | INTR_FLAG_VCOUNT | INTR_FLAG_HBLANK
+ lsl r0, r1, r0
+ orr r0, r0, #INTR_FLAG_GAMEPAK
+ orr r1, r0, #INTR_FLAG_SERIAL | INTR_FLAG_TIMER3 | INTR_FLAG_VCOUNT | INTR_FLAG_HBLANK
and r1, r1, r2
- strh r1, [r3, OFFSET_REG_IE - 0x200]
+ strh r1, [r3, #OFFSET_REG_IE - 0x200]
mrs r3, cpsr
- bic r3, r3, PSR_I_BIT | PSR_F_BIT | PSR_MODE_MASK
- orr r3, r3, PSR_SYS_MODE
+ bic r3, r3, #PSR_I_BIT | PSR_F_BIT | PSR_MODE_MASK
+ orr r3, r3, #PSR_SYS_MODE
msr cpsr_cf, r3
ldr r1, =gIntrTable
add r1, r1, r12
ldr r0, [r1]
- stmdb sp!, {lr}
+ stmfd sp!, {lr}
adr lr, IntrMain_RetAddr
bx r0
IntrMain_RetAddr:
- ldmia sp!, {lr}
+ ldmfd sp!, {lr}
mrs r3, cpsr
- bic r3, r3, PSR_I_BIT | PSR_F_BIT | PSR_MODE_MASK
- orr r3, r3, PSR_I_BIT | PSR_IRQ_MODE
+ bic r3, r3, #PSR_I_BIT | PSR_F_BIT | PSR_MODE_MASK
+ orr r3, r3, #PSR_I_BIT | PSR_IRQ_MODE
msr cpsr_cf, r3
ldmia sp!, {r0-r3,lr}
- strh r2, [r3, OFFSET_REG_IE - 0x200]
- strh r1, [r3, OFFSET_REG_IME - 0x200]
+ strh r2, [r3, #OFFSET_REG_IE - 0x200]
+ strh r1, [r3, #OFFSET_REG_IME - 0x200]
msr spsr_cf, r0
bx lr
diff --git a/src/libgcnmultiboot.s b/src/libgcnmultiboot.s
index 0e418e51f..dbf70ccf8 100644
--- a/src/libgcnmultiboot.s
+++ b/src/libgcnmultiboot.s
@@ -22,7 +22,7 @@ GameCubeMultiBoot_Hash: @ 82DED70
movs r2, 0x20
GameCubeMultiBoot_Hash_Loop:
- lsrs r3, 1
+ lsrs r3, #1
bcc GameCubeMultiBoot_Hash_SkipEor
eors r3, r4
@@ -37,8 +37,8 @@ GameCubeMultiBoot_Hash_SkipEor:
thumb_func_start GameCubeMultiBoot_Main
@ void GameCubeMultiBoot_Main(struct GameCubeMultiBoot *mb);
GameCubeMultiBoot_Main: @ 82DED84
- ldr r1, [r0, GCMB_STRUCT_SERIAL_INTR_HANDLER]
- cmp r1, 0
+ ldr r1, [r0, #GCMB_STRUCT_SERIAL_INTR_HANDLER]
+ cmp r1, #0
beq _082DEDAA
ldrb r1, [r0, 0x1]
adds r1, 0x1
@@ -47,30 +47,30 @@ GameCubeMultiBoot_Main: @ 82DED84
cmp r1, 0x2
beq _082DEDF4
ldr r3, pool_InterruptRegs
- ldrh r2, [r3, OFFSET_REG_IME - 0x200]
+ ldrh r2, [r3, #OFFSET_REG_IME - 0x200]
movs r1, 0
- strh r1, [r3, OFFSET_REG_IME - 0x200]
+ strh r1, [r3, #OFFSET_REG_IME - 0x200]
ldrb r1, [r0]
cmp r1, 0xA
bgt _082DEDA8
adds r1, 0x1
strb r1, [r0]
_082DEDA8:
- strh r2, [r3, OFFSET_REG_IME - 0x200]
+ strh r2, [r3, #OFFSET_REG_IME - 0x200]
_082DEDAA:
bcs GameCubeMultiBoot_Init
ldrb r1, [r0, 0x2]
cmp r1, 0
bne _082DEDF6
- ldr r1, [r0, GCMB_STRUCT_CUR_DEST_PTR]
- ldr r2, [r0, GCMB_STRUCT_BASE_DEST_PTR]
+ ldr r1, [r0, #GCMB_STRUCT_CUR_DEST_PTR]
+ ldr r2, [r0, #GCMB_STRUCT_BASE_DEST_PTR]
subs r1, r2
beq _082DEE76
cmp r1, 0xA0
bcc _082DEE76
push {r4-r6}
movs r1, 0x98
- adds r2, ROM_HEADER_NINTENDO_LOGO_OFFSET
+ adds r2, #ROM_HEADER_NINTENDO_LOGO_OFFSET
ldr r4, pool_NintendoLogo
_082DEDC6:
ldm r2!, {r5}
@@ -82,8 +82,8 @@ _082DEDC6:
ldm r2!, {r5}
ldm r4!, {r6}
eors r5, r6
- lsrs r5, 8
- str r2, [r0, GCMB_STRUCT_BASE_DEST_PTR]
+ lsrs r5, #8
+ str r2, [r0, #GCMB_STRUCT_BASE_DEST_PTR]
_082DEDDC:
pop {r4-r6}
bne GameCubeMultiBoot_Init
@@ -100,11 +100,11 @@ _082DEDDC:
_082DEDF4:
bx lr
_082DEDF6:
- ldr r1, [r0, GCMB_STRUCT_CUR_DEST_PTR]
+ ldr r1, [r0, #GCMB_STRUCT_CUR_DEST_PTR]
mov r12, r1
ldr r3, [r0, 0x18]
push {r4-r7}
- ldr r4, [r0, GCMB_STRUCT_BASE_DEST_PTR]
+ ldr r4, [r0, #GCMB_STRUCT_BASE_DEST_PTR]
ldr r5, pool_Kawa
ldr r6, [r0, 0x14]
ldr r7, pool_HashVal
@@ -118,7 +118,7 @@ _082DEE06:
eors r3, r1
movs r2, 0x20
_082DEE16:
- lsrs r3, 1
+ lsrs r3, #1
bcc _082DEE1C
eors r3, r7
_082DEE1C:
@@ -128,22 +128,22 @@ _082DEE1C:
adds r6, 0x1
b _082DEE06
_082DEE26:
- str r4, [r0, GCMB_STRUCT_BASE_DEST_PTR]
+ str r4, [r0, #GCMB_STRUCT_BASE_DEST_PTR]
str r6, [r0, 0x14]
pop {r4-r7}
str r3, [r0, 0x18]
ldrh r1, [r0, 0x12]
- cmp r1, 0
+ cmp r1, #0
bne _082DEE76
- ldr r1, [r0, GCMB_STRUCT_CUR_DEST_PTR]
- ldr r2, [r0, GCMB_STRUCT_BASE_DEST_PTR]
+ ldr r1, [r0, #GCMB_STRUCT_CUR_DEST_PTR]
+ ldr r2, [r0, #GCMB_STRUCT_BASE_DEST_PTR]
cmp r1, r2
bne _082DEE76
ldr r1, [r0, 0xC]
- cmp r1, 0
+ cmp r1, #0
beq _082DEE60
ldrh r1, [r0, 0x10]
- cmp r1, 0
+ cmp r1, #0
beq _082DEDF4
mov r12, lr
movs r1, 0xBB
@@ -159,11 +159,11 @@ _082DEE26:
_082DEE60:
mov r12, lr
ldrb r1, [r0, 0x3]
- lsls r1, 24
+ lsls r1, #24
subs r1, 0x1
str r1, [r0, 0xC]
bl GameCubeMultiBoot_Hash
- lsls r3, 8
+ lsls r3, #8
adds r3, 0xFF
str r3, [r0, 0x1C]
bx r12
@@ -186,8 +186,8 @@ GameCubeMultiBoot_ExecuteProgram: @ 82DEE84
cmp r1, 0x2
bne GameCubeMultiBoot_ExecuteProgram_Fail
ldr r3, pool_InterruptRegs
- movs r1, 0
- strh r1, [r3, OFFSET_REG_IME - 0x200]
+ movs r1, #0
+ strh r1, [r3, #OFFSET_REG_IME - 0x200]
ldr r1, pool_MultiBootLoadAddr
adds r1, 0xC0
bx r1
@@ -201,25 +201,25 @@ GameCubeMultiBoot_Init: @ 82DEE98
ldr r3, pool_InterruptRegs
@ Save IME register.
- ldrh r2, [r3, OFFSET_REG_IME - 0x200]
+ ldrh r2, [r3, #OFFSET_REG_IME - 0x200]
@ Disable interrupts.
movs r1, 0
- strh r1, [r3, OFFSET_REG_IME - 0x200]
+ strh r1, [r3, #OFFSET_REG_IME - 0x200]
@ Set the handler to the "Stop" routine.
@ Unless the first command that is received is a device reset command, the
@ "Stop" routine will be executed and no further commands will be processed.
adr r3, GcMbIntrHandler_Stop
- str r3, [r0, GCMB_STRUCT_SERIAL_INTR_HANDLER]
+ str r3, [r0, #GCMB_STRUCT_SERIAL_INTR_HANDLER]
ldrb r3, [r0, 0x3]
push {r3}
ldrb r3, [r0, 0x1]
push {r0,r3}
- adds r3, r0, 0
- adds r3, GCMB_STRUCT_BASE_DEST_PTR
+ adds r3, r0, #0
+ adds r3, #GCMB_STRUCT_BASE_DEST_PTR
@ clear all but the last 3 fields of the struct
GameCubeMultiBoot_Init_ClearStructLoop:
@@ -261,7 +261,7 @@ GameCubeMultiBoot_Init_ClearStructLoop:
strh r1, [r3, OFFSET_REG_IE - 0x200]
@ Restore IME register.
- strh r2, [r3, OFFSET_REG_IME - 0x200]
+ strh r2, [r3, #OFFSET_REG_IME - 0x200]
bx lr
thumb_func_end GameCubeMultiBoot_Init
@@ -275,11 +275,11 @@ GameCubeMultiBoot_HandleSerialInterrupt: @ 82DEEE2
ldrh r1, [r3, OFFSET_REG_JOYCNT - 0x120]
strh r1, [r3, OFFSET_REG_JOYCNT - 0x120]
- movs r2, 0
+ movs r2, #0
strb r2, [r0]
- ldr r2, [r0, GCMB_STRUCT_SERIAL_INTR_HANDLER]
- cmp r2, 0
+ ldr r2, [r0, #GCMB_STRUCT_SERIAL_INTR_HANDLER]
+ cmp r2, #0
beq GameCubeMultiBoot_HandleSerialInterruptDone
lsrs r1, 1 @ was a device reset command received?
@@ -297,7 +297,7 @@ GcMbIntrHandler_Stop:
strh r2, [r3, OFFSET_REG_JOYSTAT - 0x120]
GameCubeMultiBoot_SetInterruptHandler:
- str r2, [r0, GCMB_STRUCT_SERIAL_INTR_HANDLER]
+ str r2, [r0, #GCMB_STRUCT_SERIAL_INTR_HANDLER]
GameCubeMultiBoot_ReadVCount:
ldr r3, pool_RegDispstat
@@ -319,8 +319,8 @@ GameCubeMultiBoot_BeginHandshake:
cmp r1, 0
bne GcMbIntrHandler_Stop
ldr r1, pool_MultiBootLoadAddr
- str r1, [r0, GCMB_STRUCT_BASE_DEST_PTR]
- str r1, [r0, GCMB_STRUCT_CUR_DEST_PTR]
+ str r1, [r0, #GCMB_STRUCT_BASE_DEST_PTR]
+ str r1, [r0, #GCMB_STRUCT_CUR_DEST_PTR]
adr r2, GcMbIntrHandler_CheckGameCodeSent
b GameCubeMultiBoot_SetInterruptHandler
@@ -417,8 +417,8 @@ _082DEF94:
_082DEFA6:
bne GcMbIntrHandler_Stop
ldr r1, pool_MultiBootLoadAddr
- str r1, [r0, GCMB_STRUCT_BASE_DEST_PTR]
- str r1, [r0, GCMB_STRUCT_CUR_DEST_PTR]
+ str r1, [r0, #GCMB_STRUCT_BASE_DEST_PTR]
+ str r1, [r0, #GCMB_STRUCT_CUR_DEST_PTR]
adr r2, GcMbIntrHandler_82DEFB4
b GameCubeMultiBoot_SetInterruptHandler
@@ -427,7 +427,7 @@ _082DEFA6:
GcMbIntrHandler_82DEFB4: @ 82DEFB4
lsrs r1, 1 @ is receive complete?
bcc GcMbIntrHandler_Stop @ branch if not
- ldr r2, [r0, GCMB_STRUCT_CUR_DEST_PTR]
+ ldr r2, [r0, #GCMB_STRUCT_CUR_DEST_PTR]
movs r1, 0x4
ands r1, r2
adds r1, 0x8
@@ -435,7 +435,7 @@ GcMbIntrHandler_82DEFB4: @ 82DEFB4
strh r1, [r3, OFFSET_REG_JOYSTAT - 0x120]
ldr r1, [r3, OFFSET_REG_JOY_RECV - 0x120]
stm r2!, {r1}
- str r2, [r0, GCMB_STRUCT_CUR_DEST_PTR]
+ str r2, [r0, #GCMB_STRUCT_CUR_DEST_PTR]
ldrh r1, [r0, 0x12]
subs r1, 0x1
strh r1, [r0, 0x12]
@@ -500,11 +500,11 @@ GameCubeMultiBoot_Quit: @ 82DF012
ldr r3, pool_InterruptRegs
@ Save IME register.
- ldrh r2, [r3, OFFSET_REG_IME - 0x200]
+ ldrh r2, [r3, #OFFSET_REG_IME - 0x200]
@ Disable interrupts.
movs r1, 0
- strh r1, [r3, OFFSET_REG_IME - 0x200]
+ strh r1, [r3, #OFFSET_REG_IME - 0x200]
ldr r3, pool_SerialRegs
@@ -528,7 +528,7 @@ GameCubeMultiBoot_Quit: @ 82DF012
strh r1, [r3, OFFSET_REG_IE - 0x200]
@ Restore IME register.
- strh r2, [r3, OFFSET_REG_IME - 0x200]
+ strh r2, [r3, #OFFSET_REG_IME - 0x200]
bx lr
thumb_func_end GameCubeMultiBoot_Quit