i will try figure out what the cause is...
but the offending code is simply:
.flrad += .flspd
if i replace it with
.flrad += constant
it starts working...
so far ive tried:
reshuffling structs
renaming variables
changing type
i looked at the preprocess, and its correct
using constant.. which is the only one that worked so far
i started a new project and tested with all the same structs... it works there
here is the ASM:
Code: Select all
print .flrad; .flspd ' 0.0 0.5
.flrad += .flspd
print .flrad; .flspd ' 0.0 0.5
call _fb_PrintSingle@12
push 1
mov ebx, dword ptr [ebp-8]
push dword ptr [ebx+128]
push 0
call _fb_PrintSingle@12
mov ebx, dword ptr [ebp-8]
mov eax, dword ptr [ebp-8]
fld dword ptr [eax+128]
fadd dword ptr [ebx+124]
mov ebx, dword ptr [ebp-8]
fstp dword ptr [ebx+124]
push 0
mov ebx, dword ptr [ebp-8]
push dword ptr [ebx+124]
push 0
call _fb_PrintSingle@12
push 1
mov ebx, dword ptr [ebp-8]
push dword ptr [ebx+128]
push 0
call _fb_PrintSingle@12
i made a second project and run the same code, there it works
the asm output is the same:
Code: Select all
mov ebx, dword ptr [ebp-8]
mov eax, dword ptr [ebp-8]
fld dword ptr [eax+128]
fadd dword ptr [ebx+124]
mov ebx, dword ptr [ebp-8]
fstp dword ptr [ebx+124]