Hello, I will create a new issue .... for now here is an example.....
recompiled code where it is recompiled to assembler..... (don't know what it looks like).... here is a low level example (possibly would be time consuming or not at all calculation wise because its at the lowest state of programming (machine code) it might be faster to let the processor do the calculations).... i saw once that 3D graphics is faster when higher level languages do math calculations with pre-calculated answers stored in memory but how can u apply that to the dolphin recompiled code in general?
value A = 1..... value B = 3 ----- 1 divided by 3 = .33333333
register CAX will always contain the calculated result
mov EAX,mutlply value A
mov BAX,multipy value B
cmp EAX,01
je 0200
cmp eax,02
je 0300
cmp eax,03
je 0400
...
...
{this is where the program jumped because EAX equals 1)
0200: cmp BAX,01
je 0210
cmp BAX,02
je 0220
cmp BAX,03
je 0230
...
...
if BAX equaled 2 then the code starting at 220 would be:
{
220: mov CAX,memory location of pre-calculated answer containing the value .5 (1 divided by 2 equals .5)
225: jmp endofcalculationroutine
}
{here is where the program jumped to automatically do the calculation because BAX equals 3)
0230: mov CAX,memory location of pre-calculated answer containing the value .3333333R (1 divided by 3 equals .333333R)
0235: jmp endofcalculationroutine
(this is code to do dividing calculations based on pre-calculated answers stored in memory)
recompiled code where it is recompiled to assembler..... (don't know what it looks like).... here is a low level example (possibly would be time consuming or not at all calculation wise because its at the lowest state of programming (machine code) it might be faster to let the processor do the calculations).... i saw once that 3D graphics is faster when higher level languages do math calculations with pre-calculated answers stored in memory but how can u apply that to the dolphin recompiled code in general?
value A = 1..... value B = 3 ----- 1 divided by 3 = .33333333
register CAX will always contain the calculated result
mov EAX,mutlply value A
mov BAX,multipy value B
cmp EAX,01
je 0200
cmp eax,02
je 0300
cmp eax,03
je 0400
...
...
{this is where the program jumped because EAX equals 1)
0200: cmp BAX,01
je 0210
cmp BAX,02
je 0220
cmp BAX,03
je 0230
...
...
if BAX equaled 2 then the code starting at 220 would be:
{
220: mov CAX,memory location of pre-calculated answer containing the value .5 (1 divided by 2 equals .5)
225: jmp endofcalculationroutine
}
{here is where the program jumped to automatically do the calculation because BAX equals 3)
0230: mov CAX,memory location of pre-calculated answer containing the value .3333333R (1 divided by 3 equals .333333R)
0235: jmp endofcalculationroutine
(this is code to do dividing calculations based on pre-calculated answers stored in memory)