bsnes/higan/processor/v30mz
Tim Allen 50420e3dd2 Update to v098r19 release.
byuu says:

Changelog:
- added nall/bit-field.hpp
- updated all CPU cores (sans LR35902 due to some complexities) to use
  BitFields instead of bools
- updated as many CPU cores as I could to use BitFields instead of union {
  struct { uint8_t ... }; }; pairs

The speed changes are mostly a wash for this. In some instances,
I noticed a ~2-3% speedup (eg SNES emulation), and in others a 2-3%
slowdown (eg Famicom emulation.) It's within the margin of error, so
it's safe to say it has no impact.

This does give us a lot of new useful things, however:

- no more manual reconstruction of flag values from lots of left shifts
  and ORs
- no more manual deconstruction of flag values from lots of ANDs
- ability to get completely free aliases to flag groups (eg GSU can
  provide alt2, alt1 and also alt (which is alt2,alt1 combined)
- removes the need for the nasty order_lsbN macro hack (eventually will
  make higan 100% endian independent)
- saves us from insane compilers that try and do nasty things with
  alignment on union-structs
- saves us from insane compilers that try to store bit-field bits in
  reverse order
- will allow some really novel new use cases (I'm planning an
  instant-decode ARM opcode function, for instance.)
- reduces code size (we can serialize flag registers in one line instead
  of one for each flag)

However, I probably won't use it for super critical code that's constantly
reading out register values (eg PPU MMIO registers.) I think there we
would end up with a performance penalty.
2016-06-09 08:26:35 +10:00
..
algorithms.cpp Update to v097r26 release. 2016-03-17 22:28:15 +11:00
disassembler.cpp Update to v098r10 release. 2016-05-16 19:51:12 +10:00
instructions-adjust.cpp Update to v097r29 release. 2016-03-26 12:56:15 +11:00
instructions-alu.cpp Update to v097r26 release. 2016-03-17 22:28:15 +11:00
instructions-exec.cpp Update to v097r17 release. 2016-03-13 11:22:14 +11:00
instructions-flag.cpp Update to v098r19 release. 2016-06-09 08:26:35 +10:00
instructions-group.cpp Update to v097r22 release. 2016-03-13 11:22:14 +11:00
instructions-misc.cpp Update to v098r08 release. 2016-05-02 19:57:04 +10:00
instructions-move.cpp Update to v097r23 release. 2016-03-13 11:22:14 +11:00
instructions-string.cpp Update to v097r29 release. 2016-03-26 12:56:15 +11:00
memory.cpp Update to v097r28 release. 2016-03-25 17:19:08 +11:00
modrm.cpp Update to v097r20 release. 2016-03-13 11:22:14 +11:00
registers.cpp Update to v098r19 release. 2016-06-09 08:26:35 +10:00
serialization.cpp Update to v098r19 release. 2016-06-09 08:26:35 +10:00
v30mz.cpp Update to v098r19 release. 2016-06-09 08:26:35 +10:00
v30mz.hpp Update to v098r19 release. 2016-06-09 08:26:35 +10:00