The following warnings occurred:
Warning [2] Undefined array key 0 - Line: 1677 - File: showthread.php PHP 8.2.31 (Linux)
File Line Function
/inc/class_error.php 157 errorHandler->error
/showthread.php 1677 errorHandler->error_callback
/showthread.php 916 buildtree




Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Another optimizer bug (*solved*)
#1
Ouch! This bug gave me a headache! It took me some time to figure out the reason my game was crashing...

Take a look at this sample:

Code:
sub test() asm call $fc12 di ld a, $fe ld i, a im 2 ei end asm end sub test()

Try compiling this sample above using:

Code:
zxb.exe -A -O2 prog.bas

And it will produce the expected result:

Code:
_test: push ix ld ix, 0 add ix, sp #line 1 call $fc12 di ld a, $fe ld i, a im 2 ei #line 7 _test__leave: ld sp, ix pop ix ret

However try compiling it again using:

Code:
zxb.exe -A -O3 prog.bas

Now the result won't make sense anymore:

Code:
_test: push ix ld ix, 0 add ix, sp #line 1 call $fc12 di im 2 ei #line 7 _test__leave: ld sp, ix pop ix ret

The problem is, the optimizer is supposed to try to optimize its own generated code only, not someone else's assembly code that it doesn't have enough information to understand!
Reply


Messages In This Thread

Forum Jump:


Users browsing this thread: 1 Guest(s)