Sun, 02 Mar 2014 15:25:52 -0800 |
Michael Pavone |
Rename x86_68k_options and m68k_to_x86.h to m68k_options and m68k_core.h respectively
|
Sun, 02 Mar 2014 14:45:36 -0800 |
Michael Pavone |
Refactor gen_x86 to use an interface more like gen_arm and to remove the need for the caller to decide whether an 8-bit or 32-bit displacement is needed in the rdisp functions. Update m68k_to_x86 to use the new version of the gen_x86 functions and do some minor refactoring there in the process
|
Mon, 23 Jun 2014 11:46:56 -0400 |
Mike Pavone |
Save and restore guest address in the write function for a code memory chunk in the "slow" path for inconvenient host addresses. This fixes an intermittent crash on OSX in the code that checks whether the memory written may contain code
|
Mon, 23 Jun 2014 11:05:55 -0400 |
Mike Pavone |
Fix x86_rrindex_sizedir. Pass the correct scale to mov_rindexr in gen_mem_fun. BlastEm now sort of works on OS X. Runs reliably from lldb, but only intermittently from the shell
|
Tue, 17 Jun 2014 01:50:29 -0400 |
Mike Pavone |
blastem builds and almost works on OS X now
|
Mon, 24 Feb 2014 01:30:16 -0800 |
Mike Pavone |
Use a typedef code_ptr in place of uint8_t * in 68K core to better support host instruction sets with different instruction word sizes. Make x86_68k_options contain a cpu_options so that gen_mem_fun can eventually be shared with the Z80 core.
|
Mon, 24 Feb 2014 00:50:15 -0800 |
Mike Pavone |
Rename x86_backend.h and x86_backend.c to backend.h and backend.c respectively
|
Mon, 24 Feb 2014 00:39:02 -0800 |
Michael Pavone |
Start work on refactoring some of the backend code to allow more sharing between M68K and Z80 cores and possibly also between x86 and the ARM backend when it exists
|
Wed, 19 Feb 2014 00:22:27 -0800 |
Michael Pavone |
Apart from the Z80 core, BlastEm now supports 32-bit x86
|
Tue, 18 Feb 2014 21:37:31 -0800 |
Michael Pavone |
Initial work on the x86-32 target
|
Tue, 18 Feb 2014 20:32:10 -0800 |
Michael Pavone |
Generate get_sr, set_sr and set_ccr at runtime so they can respect the flag_regs setting
|
Mon, 17 Feb 2014 19:58:37 -0800 |
Michael Pavone |
Make references to flags in the M68K core respect the flag_regs options array so that flags can be moved out of registers for the 32-bit port. set/get ccr/sr still need to be updated to support this, but everything else should be done.
|
Sun, 16 Feb 2014 19:54:27 -0800 |
Michael Pavone |
Generate handle_cycle_limit at runtime so it can use the generated save/load_context functions. Since the hand written versions of save/load are no longer used they have been removed.
|
Sun, 16 Feb 2014 19:21:39 -0800 |
Michael Pavone |
Generate native_addr and native_addr_and_sync at runtime so they can use the generated save/load_context functions
|
Sun, 16 Feb 2014 18:17:59 -0800 |
Michael Pavone |
Generate retrans_stub at runtime so it can use the generated save/load_context functions
|
Sun, 16 Feb 2014 16:50:10 -0800 |
Michael Pavone |
Removed old debug print function that is no longer needed
|
Sat, 15 Feb 2014 22:35:18 -0800 |
Michael Pavone |
Get rid of the native stack option the 68K core. Trying to make it work with code that messes with the stack is not worth the trouble.
|
Sat, 15 Feb 2014 21:25:36 -0800 |
Michael Pavone |
Generate m68k_start_context at runtime so it can use the generated load_context and save_context
|
Fri, 14 Feb 2014 19:56:18 -0800 |
Michael Pavone |
Generate save_context and load_context functions at runtime
|
Sun, 09 Feb 2014 00:42:43 -0800 |
Mike Pavone |
Properly handle jmp instructions in the debugger next command
|
Thu, 03 Oct 2013 21:21:47 -0700 |
Mike Pavone |
Follow amd64 ABI stack alignment requirements in places it matters so we can call sprintf with floating point arguments without crashing
|
Tue, 10 Sep 2013 23:31:08 -0700 |
Mike Pavone |
Added copyright notice to source files and added GPL license text in COPYING
|
Sun, 08 Sep 2013 20:46:25 -0700 |
Mike Pavone |
Fix bit instruction timing
|
Sat, 20 Jul 2013 23:40:28 -0700 |
Mike Pavone |
Fix performance regression from stop instruction work
|
Fri, 19 Jul 2013 22:44:00 -0700 |
Mike Pavone |
Implement 68K stop instruction
|
Wed, 17 Jul 2013 00:23:45 -0700 |
Mike Pavone |
Fix sign flag on swap
|
Wed, 17 Jul 2013 00:18:28 -0700 |
Mike Pavone |
Fix carry flag on rotate when the register provided rotate bit count is exactly 32
|
Tue, 16 Jul 2013 23:16:50 -0700 |
Mike Pavone |
Fix 68K test harness
|
Sat, 29 Jun 2013 17:15:08 -0700 |
Mike Pavone |
Add support for loading GST format savestates
|
Tue, 25 Jun 2013 23:18:57 -0700 |
Mike Pavone |
Use the registers that were freed up by the memory map function changes
|
Tue, 21 May 2013 23:29:48 -0700 |
Mike Pavone |
Finish SRAM support for games without a SEGA mapper
|
Tue, 21 May 2013 22:08:59 -0700 |
Mike Pavone |
Support for SRAM with SEGA mapper. Half-finished support for SRAM without SEGA mapper.
|
Tue, 21 May 2013 19:26:20 -0700 |
Mike Pavone |
Refactor code gen for read/write functions
|
Tue, 21 May 2013 01:10:04 -0700 |
Mike Pavone |
m68k_trap is now replaced with a generated one so it can call the generated memory acccess functions. The old static memory access functions have been removed from runtime.S
|
Tue, 21 May 2013 00:56:56 -0700 |
Mike Pavone |
Generate handle_cycle_limit_int at runtime so it can refer to the runtime generated memory map functions
|
Sat, 18 May 2013 11:44:42 -0700 |
Mike Pavone |
Mostly working runtime generation of memory map read/write functions
|
Sun, 12 May 2013 01:34:17 -0700 |
Mike Pavone |
Fix retrun address calculation for CHK exceptions
|
Sat, 11 May 2013 21:19:31 -0700 |
Mike Pavone |
Don't update interrupt mask on non-interrupt exceptions
|
Sat, 11 May 2013 01:38:57 -0700 |
Mike Pavone |
Port instruction retranslation improvements from Z80 core to M68K core
|
Thu, 25 Apr 2013 21:01:11 -0700 |
Mike Pavone |
Get Z80 core working for simple programs
|
Sun, 21 Apr 2013 16:44:46 -0700 |
Mike Pavone |
Fix overflow detection in divs. Fix negative immediate source for divs
|
Sun, 21 Apr 2013 13:00:34 -0700 |
Mike Pavone |
Implement CHK instruction (not fully tested).
|
Sun, 21 Apr 2013 11:42:45 -0700 |
Mike Pavone |
Fixed a couple bugs in roxl/roxr. X flag wasn't being saved properly and rotates of more than 31 bits were messed up as the X flag was being thrown away between the first 31 bits of rotate and the rest.
|
Sat, 20 Apr 2013 17:41:07 -0700 |
Mike Pavone |
Fix muls with a negative immediate source.
|
Sat, 20 Apr 2013 16:53:01 -0700 |
Mike Pavone |
Fix modulo on bit operations with a memory destination
|
Sat, 20 Apr 2013 14:36:41 -0700 |
Mike Pavone |
Fix overflow flag behavior for lsl/lsr/asr
|
Sat, 20 Apr 2013 00:36:50 -0700 |
Mike Pavone |
Fix autoincrement on a7 when used as a destination in a byte sized instruction
|
Fri, 19 Apr 2013 21:36:54 -0700 |
Mike Pavone |
Fix some bugs related to sign-extension of address registers and pre-decrement amount for a7 when used as a source.
|
Tue, 16 Apr 2013 22:29:00 -0700 |
Mike Pavone |
Make reset trigger debug exit to make it easier to test the same cases in blastem and musashi. Fix asl #1 overflow flag.
|
Tue, 16 Apr 2013 09:31:21 -0700 |
Mike Pavone |
Small bit of cleanup
|
Sun, 27 Jan 2013 13:07:26 -0800 |
Mike Pavone |
Fix movem reg to mem for certain addressing modes
|
Sat, 26 Jan 2013 02:47:26 -0800 |
Mike Pavone |
Flag fixes for div, negx and not
|
Sat, 26 Jan 2013 01:33:32 -0800 |
Mike Pavone |
Tweaks to make blastem compatible with m68k-tester
|
Fri, 25 Jan 2013 18:39:22 -0800 |
Mike Pavone |
Fix overflow flag on ASL
|
Thu, 17 Jan 2013 20:00:07 -0800 |
Mike Pavone |
Add instruction address logging to translator and support for reading an address log to the disassembler
|
Thu, 17 Jan 2013 08:19:29 -0800 |
Mike Pavone |
Implement pc indexed mode as move dst
|
Wed, 16 Jan 2013 22:40:56 -0800 |
Mike Pavone |
Implement ABCD an SBCD. Fix BTEST with register source.
|
Tue, 15 Jan 2013 00:14:36 -0800 |
Mike Pavone |
Implement support for self-modifying code
|
Mon, 14 Jan 2013 21:56:54 -0800 |
Mike Pavone |
Prep work for handling games that modify code in RAM
|
Sun, 13 Jan 2013 23:48:04 -0800 |
Mike Pavone |
Fix movem.w when dest is register list
|
Sun, 13 Jan 2013 23:06:26 -0800 |
Mike Pavone |
Fix return address for areg displacement mode JSR
|
Sun, 13 Jan 2013 13:01:13 -0800 |
Mike Pavone |
Fix a bunch of bugs in the CPU core, add a 68K debugger
|
Wed, 09 Jan 2013 22:31:07 -0800 |
Mike Pavone |
Fix (a7)+ src when size is byte, fix trap return address, make div with areg src decoded to invalid
|
Wed, 09 Jan 2013 21:41:55 -0800 |
Mike Pavone |
Fix -(a7) dest when size is byte
|
Wed, 09 Jan 2013 21:08:37 -0800 |
Mike Pavone |
Fix signed division with negative result, fix address reg destination with word-sized operand, fix cmpm decoding and code generation, fix unbalanced pop in bit instructions
|
Tue, 08 Jan 2013 09:34:24 -0800 |
Mike Pavone |
Fix scc to set reg to 0xFF rather than 1 when the condition is true
|
Sun, 06 Jan 2013 22:45:45 -0800 |
Mike Pavone |
Fix order of reading saved pc and swapping user and system stack pointers
|
Sun, 06 Jan 2013 21:44:54 -0800 |
Mike Pavone |
Make sure we bail out of translation after translating an invalid instruction
|
Sun, 06 Jan 2013 21:42:57 -0800 |
Mike Pavone |
Print a message when we try to run an invalid instruction, not when we try to translate it
|
Sun, 06 Jan 2013 20:49:42 -0800 |
Mike Pavone |
Fix order of SR and PC saved in an exception stack frame
|
Sun, 06 Jan 2013 18:31:17 -0800 |
Mike Pavone |
Implement areg displacement mode for jsr
|
Sun, 06 Jan 2013 15:20:23 -0800 |
Mike Pavone |
Implement negx
|
Sun, 06 Jan 2013 14:41:26 -0800 |
Mike Pavone |
Implement movep
|
Sun, 06 Jan 2013 14:00:45 -0800 |
Mike Pavone |
Implement EORI CCR/SR
|
Sun, 06 Jan 2013 13:58:33 -0800 |
Mike Pavone |
Implement RTR
|
Sun, 06 Jan 2013 13:42:13 -0800 |
Mike Pavone |
Fix a bunch of addressing modes in movem when a register list is the destination
|
Sun, 06 Jan 2013 12:17:10 -0800 |
Mike Pavone |
Minor optimization and a cycle count fix to lea
|
Sun, 06 Jan 2013 10:54:45 -0800 |
Mike Pavone |
Initialize status register to proper value on startup
|
Sat, 05 Jan 2013 22:59:51 -0800 |
Mike Pavone |
Fix certain address modes with lea when the destination is not a native register
|
Sat, 05 Jan 2013 02:18:31 -0800 |
Mike Pavone |
Implement more movem modes src
|
Sat, 05 Jan 2013 01:55:11 -0800 |
Mike Pavone |
Implement more address modes for movem dst and fix a missing break statement in translate_m68k_dst
|
Sat, 05 Jan 2013 01:31:28 -0800 |
Mike Pavone |
FIx movem when src is reg list and dst is not a areg predec mode
|
Sat, 05 Jan 2013 00:53:50 -0800 |
Mike Pavone |
Fix predec address mode when used as source
|
Fri, 04 Jan 2013 23:52:20 -0800 |
Mike Pavone |
Fix rotate instructions that use a register source. Fix ROXL/ROXR to actually use the appropriate x86 instruction.
|
Fri, 04 Jan 2013 23:25:23 -0800 |
Mike Pavone |
Add cycles for Bcc (needs work, but this changes keeps some ROMs from making the emulator unresponsive)
|
Fri, 04 Jan 2013 23:21:07 -0800 |
Mike Pavone |
Don't use the native call stack for M68K calls by default
|
Fri, 04 Jan 2013 22:51:01 -0800 |
Mike Pavone |
Small fix for bit instructions
|
Thu, 03 Jan 2013 22:49:21 -0800 |
Mike Pavone |
Implement TRAP (untested)
|
Thu, 03 Jan 2013 22:07:40 -0800 |
Mike Pavone |
Implement MULU/MULS and DIVU/DIVS
|
Tue, 01 Jan 2013 09:40:17 -0800 |
Mike Pavone |
Do a sync when interrupt mask changes so we can recompute the next interrupt cycle. Also fix a bug in which the SR part of ORI to SR was not being performed.
|
Mon, 31 Dec 2012 20:09:09 -0800 |
Mike Pavone |
Implement most of the "X" instructions
|
Sun, 30 Dec 2012 09:55:07 -0800 |
Mike Pavone |
Add support for pc indexed addressing mode to lea
|
Sun, 30 Dec 2012 07:52:44 -0800 |
Mike Pavone |
Support more address modes for jmp
|
Sat, 29 Dec 2012 23:40:30 -0800 |
Mike Pavone |
Fix swap
|
Sat, 29 Dec 2012 23:08:14 -0800 |
Mike Pavone |
Cleanup bit instructions and fix bug in translate_m68k_move that caused incorrect results once translate_m68k_src was fixed
|
Sat, 29 Dec 2012 22:22:53 -0800 |
Mike Pavone |
Fix check in translate_m68k_src that deals with instructions for which both operands are registers that are not mapped to a native x86-64 register
|
Sat, 29 Dec 2012 22:11:28 -0800 |
Mike Pavone |
Fix encoding of movsx instruction when used with new (i.e. r9-r15) registers. This fixes the indexed addressing modes when used with a word-wide index register
|
Sat, 29 Dec 2012 21:55:42 -0800 |
Mike Pavone |
Some fixes for translating code in located in RAM
|
Sat, 29 Dec 2012 21:10:07 -0800 |
Mike Pavone |
Implement the rest of the bit instructions
|
Sat, 29 Dec 2012 20:33:39 -0800 |
Mike Pavone |
Implemented ROL and ROR
|
Sat, 29 Dec 2012 12:52:19 -0800 |
Mike Pavone |
Fix logic for switching between USP and SSP
|
Fri, 28 Dec 2012 22:47:10 -0800 |
Mike Pavone |
Fix return address pushed to stack for jsr
|
Fri, 28 Dec 2012 21:36:22 -0800 |
Mike Pavone |
cycles should return dst
|
Fri, 28 Dec 2012 21:20:14 -0800 |
Mike Pavone |
Implement pea (untested).
|
Fri, 28 Dec 2012 17:59:41 -0800 |
Mike Pavone |
Defer the correct address for pc relative jsr/jmp
|
Fri, 28 Dec 2012 17:57:43 -0800 |
Mike Pavone |
Implement scc (untested)
|
Fri, 28 Dec 2012 15:16:36 -0800 |
Mike Pavone |
Implement more address modes for jsr
|
Fri, 28 Dec 2012 14:30:25 -0800 |
Mike Pavone |
Fix areg indexed mode for move dst
|
Fri, 28 Dec 2012 11:07:13 -0800 |
Mike Pavone |
Implement ORI to CCR/SR
|
Fri, 28 Dec 2012 10:37:09 -0800 |
Mike Pavone |
Implemented move from SR
|
Thu, 27 Dec 2012 23:00:11 -0800 |
Mike Pavone |
Use unsigned comparisons for address decoding, exit when we hit an unhandled addressing mode for jmp
|
Thu, 27 Dec 2012 22:41:28 -0800 |
Mike Pavone |
allocate a new native code chunk when we run out of space
|
Thu, 27 Dec 2012 22:11:26 -0800 |
Mike Pavone |
Implement areg indexed mode for lea
|
Thu, 27 Dec 2012 22:05:22 -0800 |
Mike Pavone |
Allow use of indexed modes as move dst
|
Thu, 27 Dec 2012 21:54:54 -0800 |
Mike Pavone |
Allow indexed modes to be used as a destination
|
Thu, 27 Dec 2012 21:32:00 -0800 |
Mike Pavone |
Fix address register indexed addressing (probably)
|
Thu, 27 Dec 2012 21:23:55 -0800 |
Mike Pavone |
Fix pc indexed addressing (probably) when used as a source
|
Thu, 27 Dec 2012 21:19:58 -0800 |
Mike Pavone |
Initial work on allowing dynamic branches and code in RAM plus a small fix to effective address decoding
|
Thu, 27 Dec 2012 18:21:10 -0800 |
Mike Pavone |
Implement EXT, add some fixes to LINK/UNLK
|
Thu, 27 Dec 2012 10:40:03 -0800 |
Mike Pavone |
Fix some bugs in emulation of CLR
|
Wed, 26 Dec 2012 20:18:58 -0800 |
Mike Pavone |
vertical interrupts now work
|
Wed, 26 Dec 2012 18:20:23 -0800 |
Mike Pavone |
RTE doesn't crash the emulator anymore
|
Wed, 26 Dec 2012 11:09:04 -0800 |
Mike Pavone |
Initial stab at interrupt support. Make native code offsets bigger so I don't have to worry about overflowing the offset. Implement neg and not (untested).
|
Sat, 22 Dec 2012 21:37:25 -0800 |
Mike Pavone |
Add support for indexed modes as a source, some work on jmp and jsr with areg indirect mode
|
Fri, 21 Dec 2012 21:53:05 -0800 |
Mike Pavone |
Added untested support for LINK and UNLK
|
Fri, 21 Dec 2012 21:26:16 -0800 |
Mike Pavone |
Removed some old debug printfs
|
Fri, 21 Dec 2012 21:19:03 -0800 |
Mike Pavone |
Implement JSR for some addressing modes
|
Fri, 21 Dec 2012 16:38:40 -0800 |
Mike Pavone |
Fix some bugs in movem with a register list destination
|
Fri, 21 Dec 2012 16:04:41 -0800 |
Mike Pavone |
Implement a couple of supervisor instructions
|
Fri, 21 Dec 2012 01:00:52 -0800 |
Mike Pavone |
Implement more instructions and address modes
|
Thu, 20 Dec 2012 09:17:31 -0800 |
Mike Pavone |
Make the translator bail out if it hits an instruction I haven't implemented yet
|
Thu, 20 Dec 2012 00:56:33 -0800 |
Mike Pavone |
Fix BTST
|
Thu, 20 Dec 2012 00:44:59 -0800 |
Mike Pavone |
Gamepad support
|
Wed, 19 Dec 2012 21:25:39 -0800 |
Mike Pavone |
Cleanup 68K timing code. Temporarily omment out fFPS counter as it was causing segfaults
|
Wed, 19 Dec 2012 20:23:59 -0800 |
Mike Pavone |
Add support for BTST instruction (untested), absolute addressing mode for instructions other than move (untested) and fix decoding of MOVEM.
|
Tue, 18 Dec 2012 22:56:04 -0800 |
Mike Pavone |
ecx was getting clobbered before the relevant temp value was used in some cases during memory reads
|
Tue, 18 Dec 2012 02:16:42 -0800 |
Mike Pavone |
Get Flavio's color bar demo kind of sort of working
|
Sun, 16 Dec 2012 22:25:29 -0800 |
Mike Pavone |
Add preliminary support for JMP
|
Sun, 16 Dec 2012 21:57:52 -0800 |
Mike Pavone |
Implement CLR, minor refactor of register offset calculation in context struct
|
Sat, 15 Dec 2012 23:01:32 -0800 |
Mike Pavone |
Implement shift instructions (asl, lsl, asr, lsr). Add flags to register printout. Fix minor bug in shift/rotate instruction decoding.
|
Wed, 12 Dec 2012 23:21:11 -0800 |
Mike Pavone |
Add untested support for and, eor, or, swap, tst and nop instructions. Add call to m68k_save_result for add and sub so that they will properly save results for memory destinations
|
Wed, 12 Dec 2012 20:18:06 -0800 |
Mike Pavone |
Add support for dbcc instruction
|
Tue, 04 Dec 2012 19:25:54 -0800 |
Mike Pavone |
Initial support for M68k reset vector, rather than starting at an arbitrary address
|
Tue, 04 Dec 2012 19:13:12 -0800 |
Mike Pavone |
M68K to x86 translation works for a limited subset of instructions and addressing modes
|
Tue, 27 Nov 2012 09:28:13 -0800 |
Mike Pavone |
x86 code gen, initial work on translator
|