Commit graph

1883 commits

Author SHA1 Message Date
Bobby Smiles
740478d7ab Rename bunch of gen<OP> functions so we can simplify recomp_funcs array declaration 2018-03-24 13:30:31 +01:00
Bobby Smiles
73977a68b0 Remove unneeded header memory.h from recomp.c 2018-03-24 13:30:31 +01:00
Bobby Smiles
a81164b3a1 Get rid of recomph.h header. 2018-03-24 13:30:31 +01:00
Bobby Smiles
0a9631065b Backport changes from cached_interp_recompile_block inside recomp.c 2018-03-24 13:30:31 +01:00
Bobby Smiles
36007ddf24 Get rid of is_jump function, use a switch instead. 2018-03-24 13:30:31 +01:00
Bobby Smiles
45caf94c52 Move various tests outside of loop in cached_interp_recompile_block 2018-03-24 13:30:31 +01:00
Bobby Smiles
82868b67ab Small refactor in update_invalid_addr 2018-03-24 13:30:31 +01:00
Bobby Smiles
eb4c98cfbc Do 0x80000000 - 0xC0000000 range test using masks instead of 2 logical op 2018-03-24 13:30:31 +01:00
Bobby Smiles
7eff092d2c Move src into recomp struct. 2018-03-24 13:30:31 +01:00
Bobby Smiles
ec2a44337a Move dst to recomp struct. 2018-03-24 13:30:31 +01:00
Bobby Smiles
7b8d8f62ee Get rid of check_nop. Pass it directly to functions. 2018-03-24 13:30:31 +01:00
Bobby Smiles
34fb0b0cd6 Move delay_slot_compiled inside recomp struct. 2018-03-24 13:30:31 +01:00
Bobby Smiles
1b709cec65 Move init_length and code_length to recomp struct. 2018-03-24 13:30:31 +01:00
Bobby Smiles
032523ad58 SRC is only needed in recomp.c 2018-03-24 13:30:31 +01:00
Bobby Smiles
82a9e947d3 Only compile recomp.c when hacktarux dynarec is compiled.
Also get rid of empty_dynarec.c
2018-03-24 13:30:31 +01:00
Bobby Smiles
9852ba6a73 Isolate instruction decoding logic. 2018-03-24 13:30:30 +01:00
Bobby Smiles
12a8e3d08b Avoid usage of some Rpseudo_opcode functions. 2018-03-24 13:30:30 +01:00
Bobby Smiles
b25a84f4db split recompile_block function. 2018-03-24 13:30:30 +01:00
Bobby Smiles
a217689655 Split init_block function. 2018-03-24 13:30:30 +01:00
Bobby Smiles
7262350c89 Split free_block functions. 2018-03-24 13:30:30 +01:00
Bobby Smiles
04f29ef745 Move blocks getter functions to cached_interp. 2018-03-24 13:30:30 +01:00
Bobby Smiles
367e307f9f Remove ops header file and associated instruction_table struct. 2018-03-24 13:30:30 +01:00
Bobby Smiles
f11d0d7be3 Remove macros header. 2018-03-24 13:30:30 +01:00
Bobby Smiles
ff69ba7453 Move sign-extension macros inside osal/preproc.h 2018-03-24 13:30:30 +01:00
Bobby Smiles
f44b54c96e Add some comments. 2018-03-24 13:30:30 +01:00
Bobby Smiles
eedf36301d Avoid usage of dyna_jump in cached_interp notcompiled. 2018-03-24 13:30:30 +01:00
Bobby Smiles
4e2047b61f Remove dyna_jump call from cached_interp FIN_BLOCK 2018-03-24 13:30:30 +01:00
Bobby Smiles
61207776b9 Move dyna_jump at end of FIN_BLOCK 2018-03-24 13:30:30 +01:00
Bobby Smiles
9d2efb493e Split dynarec/cached_interp xx_jump_to implementations into their respective modules
- provide a dynarec_jump_to function in recomp module.
- use generic_jump_to when sensible (select appropriate cde path at runtime)
2018-03-24 13:30:30 +01:00
Bobby Smiles
661430625c Rename dynarec_jump_to_address -> dynarec_jump_to_recomp_address. 2018-03-24 13:30:30 +01:00
Bobby Smiles
e76aaa8510 Formatting cleanups in cached_interp module. 2018-03-24 13:30:30 +01:00
Bobby Smiles
d562015870 {init,free}_blocks and profiling is only needed for hacktarux dynarec. 2018-03-24 13:30:30 +01:00
Bobby Smiles
26371fe096 Reorganize cached/recomp/new_dynarec fields such that:
- shared fields between cached_interp and recomp are moved to
cached_interpreter
- and that we can completely separate recomp struct from
new_dynarec_hot_state.

This way we can select at compile time which dynarec struct to embed
inside r4300_core.
2018-03-24 13:30:30 +01:00
Bobby Smiles
71de99f24d Move w{,d}word inside recomp for Hacktarux dynarec.
Move them in new_dynarec_hot_state for new dynarec x86.
2018-03-24 13:30:30 +01:00
Bobby Smiles
dab7150aee Move address inside recomp struct for hacktarux dynarec.
Move it inside new_dynarec_hot_state for new_dynarec.
Remove r4300_address helper function.
2018-03-24 13:30:30 +01:00
Bobby Smiles
91ef25b2b4 Move wmask inside recomp struct. Remove wmask field in new_dynarec. 2018-03-24 13:30:30 +01:00
Bobby Smiles
74d73d2804 Move rdword to recomp struct. 2018-03-24 13:30:30 +01:00
Bobby Smiles
977741d9ad Move more fields inside recomp struct. 2018-03-24 13:30:30 +01:00
Bobby Smiles
574cefe7f1 Move regcache_state to recomp struct. 2018-03-24 13:30:30 +01:00
Bobby Smiles
38fb23530c Move dyna_interp inside recomp struct. 2018-03-24 13:30:30 +01:00
Bobby Smiles
caf23ddb9a Move local_rs inside recomp struct. 2018-03-24 13:30:30 +01:00
Logan
87b1946868
Don't call SDL_PumpEvents() in core 2018-03-23 12:18:50 -06:00
Logan McNaughton
1367d9f736 Clear CLOCK_REG when requested
DPC_STATUS_START_GCLK should be set on boot.

Renamed some of the status flags to match what is in rcp.h
2018-03-21 13:46:33 -06:00
Stefan Tobert
d5fb78feb5 Missing Joy Mappings added 2018-03-20 23:02:46 +01:00
Stefan Tobert
ece4a3cf87 Missing Joy Mappings added 2018-03-20 22:53:06 +01:00
Richard Goedeken
37b1417065
Merge pull request #545 from bsmiles32/savestate
Fix: try to keep savestates offsets aligned.
2018-03-18 20:33:05 -07:00
Richard Goedeken
b51cfc4470 fix memory read/write operations in R4300 debugging extension 2018-03-12 21:52:38 -07:00
Bobby Smiles
2d5854faad Fix: crash with savestate unaligned accesses
Keep savestate v1.2 format unchanged and pre-load data into an aligned
buffer before doing the actual 32/64 bit load.

Bump savestate version to 1.3 and changes several offsets to have them
properly aligned.
2018-03-10 00:13:37 +01:00
Bobby Smiles
2a6d7a7dc0 Fix: try to keep savestates offsets aligned. 2018-03-09 22:11:37 +01:00
Logan McNaughton
03e16a93d7 Fix DSLLV in x86 dynarec
Removes force_32 function, fixes #542
2018-03-09 13:20:01 -07:00