summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--arm9/arm9.lcf4
-rw-r--r--arm9/asm/MATH.s25
-rw-r--r--arm9/asm/MATH_crc.s (renamed from arm9/asm/libmath.s)64
-rw-r--r--arm9/asm/MATH_dgt.s47
4 files changed, 75 insertions, 65 deletions
diff --git a/arm9/arm9.lcf b/arm9/arm9.lcf
index f1dc7c8d..9035d69e 100644
--- a/arm9/arm9.lcf
+++ b/arm9/arm9.lcf
@@ -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)
diff --git a/arm9/asm/MATH.s b/arm9/asm/MATH.s
new file mode 100644
index 00000000..8e127de0
--- /dev/null
+++ b/arm9/asm/MATH.s
@@ -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
diff --git a/arm9/asm/libmath.s b/arm9/asm/MATH_crc.s
index e841f5da..2b9b8f26 100644
--- a/arm9/asm/libmath.s
+++ b/arm9/asm/MATH_crc.s
@@ -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}
diff --git a/arm9/asm/MATH_dgt.s b/arm9/asm/MATH_dgt.s
new file mode 100644
index 00000000..12d05588
--- /dev/null
+++ b/arm9/asm/MATH_dgt.s
@@ -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