mirror of
https://github.com/pret/pokediamond.git
synced 2026-04-25 15:42:51 -05:00
Decompile MATH.c
This commit is contained in:
parent
dace495d47
commit
793e1eba87
|
|
@ -1,25 +0,0 @@
|
|||
.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
|
||||
8
arm9/lib/include/MATH.h
Normal file
8
arm9/lib/include/MATH.h
Normal file
|
|
@ -0,0 +1,8 @@
|
|||
#ifndef GUARD_MATH_H
|
||||
#define GUARD_MATH_H
|
||||
|
||||
#include "types.h"
|
||||
|
||||
u8 MATH_CountPopulation(u32);
|
||||
|
||||
#endif
|
||||
11
arm9/lib/src/MATH.c
Normal file
11
arm9/lib/src/MATH.c
Normal file
|
|
@ -0,0 +1,11 @@
|
|||
#include "MATH.h"
|
||||
|
||||
u8 MATH_CountPopulation(u32 x) {
|
||||
x -= (x >> 1) & 0x55555555;
|
||||
x = (x & 0x33333333) + ((x >> 2) & 0x33333333);
|
||||
x += x >> 4;
|
||||
x &= 0x0f0f0f0f;
|
||||
x += x >> 8;
|
||||
x += x >> 16;
|
||||
return (u8)x;
|
||||
}
|
||||
Loading…
Reference in New Issue
Block a user