split libmath

This commit is contained in:
red031000
2020-05-20 16:45:50 +01:00
parent d648a684ef
commit 9aa70573ad
4 changed files with 75 additions and 65 deletions

View File

@@ -244,7 +244,9 @@ SECTIONS {
CTRDG_flash_MX29L010.o (.text)
CTRDG_flash_MX29L512.o (.text)
CTRDG_task.o (.text)
libmath.o (.text)
MATH.o (.text)
MATH_dgt.o (.text)
MATH_crc.o (.text)
libstd.o (.text)
/* C standard library */
libc.o (.text)

25
arm9/asm/MATH.s Normal file
View File

@@ -0,0 +1,25 @@
.include "asm/macros.inc"
.include "global.inc"
.text
arm_func_start MATH_CountPopulation
MATH_CountPopulation: ; 0x020DDC5C
ldr r1, _020DDC94 ; =0x55555555
ldr r2, _020DDC98 ; =0x33333333
and r1, r1, r0, lsr #0x1
sub r0, r0, r1
and r1, r0, r2
and r0, r2, r0, lsr #0x2
add r1, r1, r0
ldr r0, _020DDC9C ; =0x0F0F0F0F
add r1, r1, r1, lsr #0x4
and r0, r1, r0
add r0, r0, r0, lsr #0x8
add r0, r0, r0, lsr #0x10
and r0, r0, #0xff
bx lr
.balign 4
_020DDC94: .word 0x55555555
_020DDC98: .word 0x33333333
_020DDC9C: .word 0x0F0F0F0F

View File

@@ -3,70 +3,6 @@
.text
arm_func_start MATH_CountPopulation
MATH_CountPopulation: ; 0x020DDC5C
ldr r1, _020DDC94 ; =0x55555555
ldr r2, _020DDC98 ; =0x33333333
and r1, r1, r0, lsr #0x1
sub r0, r0, r1
and r1, r0, r2
and r0, r2, r0, lsr #0x2
add r1, r1, r0
ldr r0, _020DDC9C ; =0x0F0F0F0F
add r1, r1, r1, lsr #0x4
and r0, r1, r0
add r0, r0, r0, lsr #0x8
add r0, r0, r0, lsr #0x10
and r0, r0, #0xff
bx lr
.balign 4
_020DDC94: .word 0x55555555
_020DDC98: .word 0x33333333
_020DDC9C: .word 0x0F0F0F0F
arm_func_start MATH_CalcSHA1
MATH_CalcSHA1: ; 0x020DDCA0
stmdb sp!, {r4-r6,lr}
sub sp, sp, #0x68
mov r6, r0
add r0, sp, #0x0
mov r5, r1
mov r4, r2
bl DGT_Hash2Reset
_020DDCBC: ; 0x020DDCBC
add r0, sp, #0x0
mov r1, r5
mov r2, r4
bl DGT_Hash2SetSource
_020DDCCC: ; 0x020DDCCC
add r0, sp, #0x0
mov r1, r6
bl DGT_Hash2GetDigest
add sp, sp, #0x68
ldmia sp!, {r4-r6,lr}
bx lr
arm_func_start MATH_CalcMD5
MATH_CalcMD5: ; 0x020DDCE4
stmdb sp!, {r4-r6,lr}
sub sp, sp, #0x58
mov r6, r0
add r0, sp, #0x0
mov r5, r1
mov r4, r2
bl DGT_Hash1Reset
_020DDD00: ; 0x020DDD00
add r0, sp, #0x0
mov r1, r5
mov r2, r4
bl DGT_Hash1SetSource
add r1, sp, #0x0
mov r0, r6
bl DGT_Hash1GetDigest_R
add sp, sp, #0x58
ldmia sp!, {r4-r6,lr}
bx lr
arm_func_start MATH_CalcCRC32
MATH_CalcCRC32: ; 0x020DDD28
stmdb sp!, {lr}

47
arm9/asm/MATH_dgt.s Normal file
View File

@@ -0,0 +1,47 @@
.include "asm/macros.inc"
.include "global.inc"
.text
arm_func_start MATH_CalcSHA1
MATH_CalcSHA1: ; 0x020DDCA0
stmdb sp!, {r4-r6,lr}
sub sp, sp, #0x68
mov r6, r0
add r0, sp, #0x0
mov r5, r1
mov r4, r2
bl DGT_Hash2Reset
_020DDCBC: ; 0x020DDCBC
add r0, sp, #0x0
mov r1, r5
mov r2, r4
bl DGT_Hash2SetSource
_020DDCCC: ; 0x020DDCCC
add r0, sp, #0x0
mov r1, r6
bl DGT_Hash2GetDigest
add sp, sp, #0x68
ldmia sp!, {r4-r6,lr}
bx lr
arm_func_start MATH_CalcMD5
MATH_CalcMD5: ; 0x020DDCE4
stmdb sp!, {r4-r6,lr}
sub sp, sp, #0x58
mov r6, r0
add r0, sp, #0x0
mov r5, r1
mov r4, r2
bl DGT_Hash1Reset
_020DDD00: ; 0x020DDD00
add r0, sp, #0x0
mov r1, r5
mov r2, r4
bl DGT_Hash1SetSource
add r1, sp, #0x0
mov r0, r6
bl DGT_Hash1GetDigest_R
add sp, sp, #0x58
ldmia sp!, {r4-r6,lr}
bx lr