summaryrefslogtreecommitdiff
path: root/gen_x86.c
AgeCommit message (Collapse)Author
2020-07-11Fix broken enum definitions that cause multiple definition errors when ↵Mike Pavone
building with -fno-common which is now the default in GCC 10
2020-04-30Fix some questionable comparisons between 64-bit values and literals that ↵Michael Pavone
fit in 32-bit integers
2019-04-07Fix callee saved regs for Win64Michael Pavone
2019-04-07Get 64-bit builds working for Windows targetMichael Pavone
2018-06-18Fix memory leak in prep_argsMichael Pavone
2017-10-09Attempt at fixing issue reported when compiling with MSVCMichael Pavone
2017-09-13Preserve original address when retranslating instructions instead of ↵Michael Pavone
switching to the lowest alias
2017-05-04Fix some inconsequential issues in code for executable memory allocation ↵Michael Pavone
noticed while tracking down a different issue
2017-03-25Prevent blowing past our native translated instruction size of 255 bytes ↵Michael Pavone
when translating movem with a large register list. Fixes bug in which Fantastic Dizzy was completely broken on 32-bit builds
2017-02-04Cycle accurate MULU/MULS emulationMichael Pavone
2016-10-06Add support for specifying a reset handler in the M68K core. Adjust memory ↵Michael Pavone
map initialization to handle extra field. Improved handling of out of bounds execution.
2016-08-09Fixed a bug in call_raxfallback that would cause the call to be omitted ↵Michael Pavone
completely in the RAX fallback case. This fixes a crash on OpenBSD and possibly other systems
2015-11-27Adjust stack before pushing arguments. Fixes new stack alignment code on ↵Michael Pavone
32-bit targets
2015-11-26Fix for Z80 retranslation post alignment reworkMichael Pavone
2015-11-25Partially working change to do proper stack alignment rather than doing a ↵Michael Pavone
lame alignment check when calling a C compile dfunction. 68K core seems okay, but Z80 is busted.
2015-07-25Use a new fatal_error function instead of calling fprintf and exit for fatal ↵Michael Pavone
errors. This new function more gracefully handles the case in which BlastEm was not started from a terminal or disconnected from ther terminal (Windows).
2015-06-27Cleanup some warnings under clang through a combination of code fixes and ↵Michael Pavone
supressing specific warnings
2015-06-27Handle far calls in call_args and call_args_abiMichael Pavone
2015-05-23Generate an error in x86-32 builds for most cases when a REX prefix would be ↵Michael Pavone
generated
2015-04-28Fix bug in map_native_address that was breaking some self-modifying code in ↵Michael Pavone
Gunstar Heroes
2015-03-14WIP of functions to determine size of x86 instruction to allow patching of ↵Michael Pavone
arbitrary pieces of code
2015-01-04MergeMichael Pavone
2015-01-02Added functions to gen_x86 for saving and restoring callee save registers to ↵Michael Pavone
better abstract over ABI differences between x86 and x86-64
2015-01-01Added 2 new functions to gen_x86.c for handling passing args according to ↵Michael Pavone
the C abi of the host system and adapted the code in m68k_core_x86.c to use that instead of doing everything by hand
2014-12-26Fix reg-indirect mode for RBP/R13Michael Pavone
2014-12-22Z80 core is sort of working againMichael Pavone
2014-06-23Fix x86_rrindex_sizedir. Pass the correct scale to mov_rindexr in ↵Mike Pavone
gen_mem_fun. BlastEm now sort of works on OS X. Runs reliably from lldb, but only intermittently from the shell
2014-03-02Refactor gen_x86 to use an interface more like gen_arm and to remove the ↵Michael Pavone
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
2014-02-19Apart from the Z80 core, BlastEm now supports 32-bit x86Michael Pavone
2013-10-03Add support for test instruction to x86 generator libraryMike Pavone
2013-09-10Added copyright notice to source files and added GPL license text in COPYINGMike Pavone
2013-06-24Fix access to int_enable_cycle in EIMike Pavone
2013-05-21Fix some minor copy pasta bugs that resulted in an unnecessary REX prefix ↵Mike Pavone
being generated for some instructions
2013-05-18Mostly working runtime generation of memory map read/write functionsMike Pavone
2013-05-02Don't mix *H regs with the REX prefixMike Pavone
2013-04-28Implement EX, EXX and RST in Z80 coreMike Pavone
2013-04-25Get Z80 core working for simple programsMike Pavone
2013-01-25Fix overflow flag on ASLMike Pavone
2013-01-16Implement ABCD an SBCD. Fix BTEST with register source.Mike Pavone
2013-01-03Implement MULU/MULS and DIVU/DIVSMike Pavone
2012-12-31Implement most of the "X" instructionsMike Pavone
2012-12-29Fix encoding of movsx instruction when used with new (i.e. r9-r15) ↵Mike Pavone
registers. This fixes the indexed addressing modes when used with a word-wide index register
2012-12-29Implement the rest of the bit instructionsMike Pavone
2012-12-28Fix call_r in gen_x86 so that it properly returns a pointer to the location ↵Mike Pavone
after the generated instruction
2012-12-28Implement scc (untested)Mike Pavone
2012-12-26Initial stab at interrupt support. Make native code offsets bigger so I ↵Mike Pavone
don't have to worry about overflowing the offset. Implement neg and not (untested).
2012-12-22Add support for indexed modes as a source, some work on jmp and jsr with ↵Mike Pavone
areg indirect mode
2012-12-21Implement more instructions and address modesMike Pavone
2012-12-19Add support for BTST instruction (untested), absolute addressing mode for ↵Mike Pavone
instructions other than move (untested) and fix decoding of MOVEM.
2012-12-15Implement shift instructions (asl, lsl, asr, lsr). Add flags to register ↵Mike Pavone
printout. Fix minor bug in shift/rotate instruction decoding.