Search
lxdream.org :: lxdream/src/sh4/sh4x86.in :: log
lxdream 0.9.1
released Jun 29
Download Now
filename src/sh4/sh4x86.in
changeset1292:799fdd4f704a
authornkeynes
dateFri Aug 24 08:53:50 2012 +1000 (11 years ago)
permissions-rw-r--r--
last changeMove the generated prologue/epilogue code out into a common entry stub
(reduces space requirements) and pre-save all saved registers. Change
FASTCALL to use 3 regs instead of 2 since we can now keep everything in
regs.
file annotate diff log rss
1292:799fdd4f704a11 yearsnkeynesMove the generated prologue/epilogue code out into a common entry stub
1263:b3de98d19faf12 yearsnkeynesBreak host disassembly bits out of sh4x86.in, and move the generic disasm
1218:be02e87f9f8712 yearsnkeynesMove profile_block setting out of sh4x86 and back into sh4.c. Fix last bits
1216:defbd44429d812 yearsnkeynesFix typo
1214:49152b3d8b7512 yearsnkeynesSetup the unlink_blocks function via a callback, rather than calling
1198:407659e01ef012 yearsNathan KeynesAdd volatile qualifier to return-address frobbing - works around optimizer
1197:904fba59a70512 yearsNathan KeynesImprove handling of NAN in fcmp/eq and ftrc
1196:a14dbddafd1312 yearsNathan KeynesUpdate maximum epilogue size
1194:ee6ce580460812 yearsnkeynesHandle memory exceptions thrown while in shadow mode
1193:dff55bdc4f4612 yearsnkeynesFix MAC.W operand ordering - reads from Rn first, then Rm (per the manual)
1191:12fdf3aafcd412 yearsnkeynesSH4 shadow-mode tweaks
1186:2dc47c67bb9312 yearsnkeynesAdd support for block linking when the block target is fixed. Only a small
1182:b38a327ad8fa12 yearsnkeynesAdd block profiling option to count the number of executions of each block,
1176:70feb174942712 yearsNathan KeynesFix block-chaining epilogue for 64-bit builds (was loading a 32-bit pointer,
1149:da6124fceec613 yearsnkeynesAdd chain pointer to the xlat cache, so that we can maintain multiple blocks
1146:76c5d106426213 yearsnkeynesFix 32-bit non-fastcall build
1125:9dd5dee45db913 yearsnkeynesImplement shadow-execution 'core' to run translator + interpreter side by
1120:7c40a0f687b313 yearsnkeynesAdd missing sh4_translate_breakpoint_hit to the symbol table
1112:4cac5e474d4c13 yearsnkeynesRearrange the main translation loop to allow translated blocks to jump
1092:7c4ffe27e7b514 yearsnkeynesFix 64-bit x86 disassembly
1091:18655837434514 yearsnkeynesAdd side-by-side x86+sh4 disassembly output
1067:d3c00ffccfcd14 yearsnkeynesNo-op merge lxdream-mem to tip to remove head (Long since merged in
1065:bc1cc0c5491714 yearsnkeynesNo-op merge lxdream-mmu to remove head (actually merged long ago)
1011:fdd58619b76015 yearsnkeynesRestructure operand types - xlat-refactor
1008:4c8211637afc15 yearsnkeynesUpdate sh4_translate_end_block_size() to have the correct backpatch sizes
1006:3a169c224c1215 yearsnkeynesCommit current work-in-progress to xlat-refactor branch xlat-refactor
1004:eae00185813415 yearsnkeynesRemove last lingering bits of SH4-specific code from the ABI headers
1003:7b2688cbbca315 yearsnkeynesRevert change to xltcache and fix breakpoint precision correctly
996:2e8cf0a8724315 yearsnkeynesFix stupid mistake in non-frame-exception path
995:eb9d43e8aa0815 yearsnkeynesCleanup ABI headers - most of the content made consistent between versions, and moved into sh4x86.in proper
992:7c15f8a7199515 yearsnkeynesMove ABI headers to xlat/x86 as well (and finally rename erroneously named ia64abi to amd64abi)
991:60c7fab9c88015 yearsnkeynesMove xltcache to xlat/ src directory
975:007bf7eb944f15 yearsnkeynesAdd read_byte_for_write mem function for correct implementation of AND.B and friends
974:16b079ed11bb15 yearsnkeynesFix double-counting of instructions in delay slots in sh4_finalize_instruction
956:4c1ed9e0398515 yearsnkeynesExit immediately on an unconditional exception - makes those blocks a little simpler and shorter
953:f4a156508ad115 yearsnkeynesMerge lxdream-mem branch back to trunk
946:d41ee7994db715 yearsnkeynesFully integrate SQ with the new address space code - added additional 'prefetch' lxdream-mem
941:c67574ed435515 yearsnkeynesImplement CORE_EXIT_EXCEPTION for use when direct frame messing about doesn't work lxdream-mem
939:6f2302afeb8915 yearsnkeynesMMU work-in-progress lxdream-mem
937:81b0c79d978815 yearsnkeynesUpdate sh4x86 to take advantage of SR assumptions. nice 2% there :) lxdream-mem
936:f394309c399a15 yearsnkeynesReplace fpscr_mask/fpscr flags in xlat_cache_block with a single xlat_sh4_mode, lxdream-mem
930:07e5b11419db15 yearsnkeynesRemove pointer cache and add full address-space map. Much better lxdream-mem
929:fd8cb0c82f5f15 yearsnkeynesFirst pass experiment using cached decoding. lxdream-mem
927:17b6b9e245d815 yearsnkeynesAdd return-address-modifying exception return code to mmu TLB lookups (a little bit faster)
926:68f3e0fe02f115 yearsnkeynesSetup a 'proper' stackframe in translated blocks. This doesn't affect performance noticeably,
911:2f6ba75b84d115 yearsnkeynesDeclare mem_copy_* functions as FASTCALL
908:a00debcf260015 yearsnkeynesFix x86-64 build (typos et al)
905:4c17ebd9ef5e15 yearsnkeynesUse regparam calling conventions for all functions called from translated code,
904:5b92e51ac06b15 yearsnkeynesEnable the FIPR SSE3 code for now, and add a comment on the sh4r.fr alignment
903:1337c7a7dd6b15 yearsnkeynesAdd SSE3 versions of FIPR and FTRV - the latter is about a 4.5% improvement
901:32c5cf5e206f15 yearsnkeynesMove the precision/size tests to translation-time rather than execution-time,
879:a07af43e03c415 yearsnkeynesFix corner flag case with conditional delayed branches
875:2147174fb32015 yearsnkeynesFix a few more subtle flag problems
872:a3041742bb7d15 yearsnkeynesFix CLRS/SETS - These kill the carry value, they don't set it.
824:016cda9d051815 yearsnkeynesCorrect generated UNDEF() => UNDEF(ir) for consistency with UNIMP(ir)
800:0d1be79c9b3315 yearsnkeynesFix x86-64 bugs (only visible on OS X)
789:7e7ec23217fc15 yearsnkeynesFix 64-bit correctness in ptr loads in FTRC
733:633ee022f52e15 yearsnkeynesBug 60: Fix off-by-one in recovery list size
732:f05753bbe72315 yearsnkeynesFix alignment check for 64-bit FMOVs
675:b97020f9af1c15 yearsnkeyneshange 64-bit configuration to use sizeof(void *) rather than the system id
.