VOGONS


First post, by ih8registrations

User metadata
Rank Oldbie
Rank
Oldbie

Much of my prior optimizations havn't been added so I'll try to explain what's going on with the changes.

get rid of memory accesses, in exchange do a shift
get rid of jump of if (bool) var++ and similiar code, instead does var+=(bool)
change switch statements <4 to if then (if then is faster than switch <4)
change most common path from dword to word
unroll dyn_savestate & dyn_loadstate explicitly(gprof says it makes dosbox happy)
common path optimizations for cache_openblock
the one line comments were converted from /* */ to // to save me time commenting out large blocks quickly
got rid of the breaks in the large case statement in createcacheblock by reordering and filling in missing cases so that it gets compiled to one big jump table.
bonus is you also see more readily which opcodes are not yet implemented dynamically.

Respond if they break anything.

Attachments

  • Filename
    optimizations.diff
    File size
    63.47 KiB
    Downloads
    215 downloads
    File license
    Fair use/fair dealing exception