bsnes/higan
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
..
audio Update to v098r14 release. 2016-06-01 21:23:22 +10:00
data Update to v097r06 release. 2016-01-31 18:59:44 +11:00
emulator Update to v098r19 release. 2016-06-09 08:26:35 +10:00
fc Update to v098r14 release. 2016-06-01 21:23:22 +10:00
gb Update to v098r18 release. 2016-06-07 21:55:03 +10:00
gba Update to v098r14 release. 2016-06-01 21:23:22 +10:00
obj Update to v096r01 release. 2015-12-30 17:54:59 +11:00
out Update to v096r01 release. 2015-12-30 17:54:59 +11:00
processor Update to v098r19 release. 2016-06-09 08:26:35 +10:00
profile Update to v097r26 release. 2016-03-17 22:28:15 +11:00
resource Update to v098r12 release. 2016-05-26 21:20:15 +10:00
sfc Update to v098r17 release. 2016-06-06 08:10:01 +10:00
target-loki Update to v098r11 release. 2016-05-25 21:13:02 +10:00
target-tomoko Update to v098r16 release. 2016-06-05 15:03:21 +10:00
video Update to v098r12 release. 2016-05-26 21:20:15 +10:00
ws Update to v098r14 release. 2016-06-01 21:23:22 +10:00
GNUmakefile Update to v098r12 release. 2016-05-26 21:20:15 +10:00