vbt
Staff member
Through working on Princess Crown and more recently Langrisser III there’s been times where I’ve been working with tight code space. Sometimes you need to add a few instructions and you just have no space to put them. Anyways, here’s some areas I found where you can often optimize the code giving you a few extra precious bytes to work with:
Negative or high value word’s stored as long’s. Sometimes you run into following scenario:
mov.l my_label, r0
[more code here]
my_label: .long 0xFFFD
The data then is basically treated as a word for its entire use. It’s a bit inefficient since you should be able to store it as a word instead. Of course you may also have to deal with data alignment which may negate the savings. So a better approach instead is as follows:
mov #0xFD, r0
extu.w r0, r0
source : http://cyberwarriorx.com/sh2-assembly-optimizations