mirror of https://github.com/bsnes-emu/bsnes.git
92fe5b0813
byuu says: Six and a half hours this time ... one new opcode, and all old opcodes now in a deprecated format. Hooray, progress! For building the table, I've decided to move from: for(uint opcode : range(65536)) { if(match(...)) bind(opNAME, ...); } To instead having separate for loops for each supported opcode. This lets me specialize parts I want with templates. And to this aim, I'm moving to replace all of the (read,write)(size, ...) functions with (read,write)<Size>(...) functions. This will amount to the ~70ish instructions being triplicated ot ~210ish instructions; but I think this is really important. When I was getting into flag calculations, a ton of conditionals were needed to mask sizes to byte/word/long. There was also lots of conditionals in all the memory access handlers. The template code is ugly, but we eliminate a huge amount of branch conditions this way. |
||
---|---|---|
.. | ||
arm | ||
gsu | ||
hg51b | ||
lr35902 | ||
m68k | ||
r6502 | ||
r65816 | ||
spc700 | ||
upd96050 | ||
v30mz | ||
z80 | ||
GNUmakefile | ||
processor.hpp |