12-24-2012, 10:48 AM
I was reading this over, and decided to give -O3 another try. I generally don't use it, because even though it should produce a binary that does the same thing, I've never actually got it to work. It either fails to compile, or produces a binary that doesn't behave the same way..
With the latest version of Berksman I have, and the latest version of the compiler:
Without O3 - compiles perfectly. (And I notice a score bug I have to fix!)
With O3: Fails to compile.
Traceback (most recent call last):
File "zxb.py", line 317, in <module>
File "zxb.py", line 272, in main
File "optimizer.pyc", line 2278, in optimize
File "optimizer.pyc", line 1456, in update_goes_and_comes
IndexError: list index out of range
Build Failed!
(To be fair, I did expect the fact I have an Im2 routine to be a deal breaker. No idea how to persuade it to keep that)
Edit2: Actually, the ISR doesn't call any named functions. It just jumps to a piece of code @address. That ought to work..
Latest source attached
With the latest version of Berksman I have, and the latest version of the compiler:
Without O3 - compiles perfectly. (And I notice a score bug I have to fix!)
With O3: Fails to compile.
Traceback (most recent call last):
File "zxb.py", line 317, in <module>
File "zxb.py", line 272, in main
File "optimizer.pyc", line 2278, in optimize
File "optimizer.pyc", line 1456, in update_goes_and_comes
IndexError: list index out of range
Build Failed!
(To be fair, I did expect the fact I have an Im2 routine to be a deal breaker. No idea how to persuade it to keep that)
Edit2: Actually, the ISR doesn't call any named functions. It just jumps to a piece of code @address. That ought to work..
Latest source attached
