Commit Graph

  • 5d40561d14 Refactored register allocator asm Compiler. (#249) Petr Kobalicek 2019-07-16 01:24:22 +02:00
  • 761130b1d8 README.md update kobalicek 2019-05-23 20:36:17 +02:00
  • fc251c914e Only use -Wbool-operation when compiling with GCC 7+ kobalicek 2019-03-20 09:44:11 +01:00
  • 02d24af4c0 Replace incorrect CMake CACHE variable type BOOLEAN with BOOL (#238) Nils Gladitz 2019-03-20 09:38:43 +01:00
  • 1e550aa568 Updated Support section in README.md kobalicek 2019-01-27 17:58:56 +01:00
  • f06b78fdf4 Added xacquire/xrelease/k(kreg) modifiers to X86Emitter (backported from next-wip) kobalicek 2019-01-24 11:36:08 +01:00
  • 3092065f14 Fixed bug in instruction validation (#220) svost 2018-11-22 15:07:03 +03:00
  • e53ff4267b Fixed #199 kobalicek 2018-11-17 14:07:52 +01:00
  • 868f8d2e27 Attempt to fix remaining issues (maintenance mode) kobalicek 2018-11-17 13:45:39 +01:00
  • c2f50e6fc5 Incorporated changes from pull requests 187, 202, and 212 kobalicek 2018-11-17 05:43:49 +01:00
  • 2194899168 Updated README.md - Incorporated some changes from PR190 and added a disclaimer about next-wip kobalicek 2018-11-17 05:13:12 +01:00
  • 771d66b301 Fixed #178 kobalicek 2018-11-07 02:56:49 +01:00
  • 673dcefaa0 Fixed #188 kobalicek 2017-12-11 02:02:44 +01:00
  • a3cd6fa26d fix installation of static library (#185) Markus Theil 2017-11-27 14:15:08 +01:00
  • bf2130caac Updated LICENSE.md to be more friendly to the github license parser kobalicek 2017-11-15 01:19:50 +01:00
  • 92bd11f374 Added TypeIdOf<bool> partial overload to allow bool type in function signatures. Wenzel Jakob 2017-11-08 00:16:29 +01:00
  • 4d8a696e8e Fixed #184 kobalicek 2017-11-07 23:16:58 +01:00
  • 29d72cc627 Temporarily disable linux/clang compiler on Travis (it's not compatible with libc++ provided by Travis) kobalicek 2017-11-07 10:03:09 +01:00
  • 4f66bee8b2 Fixed #182 kobalicek 2017-11-07 02:04:29 +01:00
  • 802c6a037f X86Assembler: bugfix in checking parameters of the outs instructions (#180) fthielke 2017-11-01 14:22:06 +01:00
  • 082a395dfd Fixed a bug in Compiler when used with CodeInfo that doesn't specify any alignment kobalicek 2017-10-28 23:14:07 +02:00
  • 9850643721 Remove unnecessary #include <sys/statvfs.h> (#175) Michael Clark 2017-08-16 02:36:12 +12:00
  • 31066937fd Fixed 'enter x, y' bug kobalicek 2017-08-08 20:16:37 +02:00
  • cec9f76fc7 Updated CxxProject kobalicek 2017-08-08 20:15:41 +02:00
  • 63d1c228d7 Install dll in /bin (#177) xantares 2017-07-30 22:11:34 +02:00
  • 1370fe6a26 Fixed typos in the Stack Management example (#172) Simon Rainer 2017-05-08 15:17:13 +02:00
  • faf7e850bc Fixed LIKELY/UNLIKELY macros kobalicek 2017-05-03 12:51:59 +02:00
  • ab59e3518f Added some simple test cases kobalicek 2017-03-30 17:37:12 +02:00
  • 3864b255e9 Fixed CPU detection of FMA3, fixed AVX/AVX2 flags of vpavgb and vpavgw instructions (asmdb update) Petr Kobalicek 2017-03-25 18:52:37 +01:00
  • 46daab98b1 [bug] Fixed incorrect code generated by setcc instruction when using GPB.HI reg kobalicek 2017-03-21 12:16:08 +01:00
  • 81a78351b3 Fix ternary condition for 32/64 bit reg swaps (#164) Michael R Fairhurst 2017-03-21 02:22:40 -07:00
  • 6282179662 Go to next block group after return, so it gets a pass state (#163) Michael R Fairhurst 2017-03-16 12:05:09 -07:00
  • 3f4bb2ba0e Fixed a bug introduced by a previous commit kobalicek 2017-03-09 17:07:24 +01:00
  • e8a80ea958 Moved logic from x86inst.cpp to x86instimpl.cpp, moved some instruction methods to Inst from X86Inst, added Inst::checkFeatures() for retrieving which CPU features are required to run a given instruction, minor reorganization and asmdb update kobalicek 2017-03-09 16:57:54 +01:00
  • 0e80d2c3c3 [bug] Fixed special case of mov[abs] instruction kobalicek 2017-03-07 13:59:06 +01:00
  • 528951ab9a Minor, catch VSIB{rip+xxx} in x86 validator as well kobalicek 2017-03-06 18:54:52 +01:00
  • 35ba2ad83a Minor changes to cmake files kobalicek 2017-03-04 20:37:42 +01:00
  • 951c62e330 Named labels are printed with their name, instead of L#. (#160) Víctor M. González 2017-03-04 13:02:31 -03:00
  • df7423d596 Fill sourceSectionId of reloc info properly kobalicek 2017-02-27 20:25:37 +01:00
  • 90c26db709 Added more memory addressing types to Mem operand kobalicek 2017-02-27 17:12:28 +01:00
  • a808b44359 Minor logging changes kobalicek 2017-02-26 12:33:05 +01:00
  • 4a94223ebd Added new instructions + xacquire|xrelease prefixes, reorganized instruction options kobalicek 2017-02-26 12:19:49 +01:00
  • f589e7165a Fixed encoding of 'CRC32 r64, r8/m8' instruction Fixed encoding of 'POPCNT|TZCNT|LZCNT r16, r16/m16' instruction Fixed encoding of EVEX instructions that don't provide VEX prefix equivalent Added 'LOCK MOV CR8' extension used by AMD processors in 32-bit mode and 'ALTMOVCR8' CPU feature Renamed some CPU features to respect their names used in X86/X64 architecture manuals Added validation of immediate operands (correct size, correct sign/zero extension) Added validation of explicit/implicit size of memory operands Added validation of LOCK/REP/REPNZ prefixes to x86 validator Reorganized some X86 instruction tables, removed family specific tables, introduced OperationData Improved instruction tables generator to automatically generate instruction flags Regenerated all instruction tables to respect the current state of 'asmdb.x86data' kobalicek 2017-02-25 19:26:08 +01:00
  • aa154e3590 Added more instructions (System, MPX, AVX512_VPOPCNTDQ, AVX512_4FMAPS, AVX512_4VNNIW) kobalicek 2017-02-21 01:55:07 +01:00
  • bb8b6d9fa2 Mark _globalOptions as well as _lastError in CodeEmitter::setLastError() kobalicek 2017-02-20 08:56:38 +01:00
  • 2416e428a3 Get rid off some strict aliasing warnings. kobalicek 2017-02-19 19:41:10 +01:00
  • 1e47f7999c Fixed some warnings kobalicek 2017-02-19 19:36:36 +01:00
  • 9ceb071c4a Minor improvements kobalicek 2017-02-19 18:42:44 +01:00
  • c8c16f3366 [bug] Fixed encoding of vmovd and vmovq instructions kobalicek 2017-02-16 02:31:08 +01:00
  • 8c86004d7f Minor Compiler fixes especially related to AVX kobalicek 2017-02-15 17:22:16 +01:00
  • 8062e7d433 Dump an instruction signature on error, corrected x86 validator a bit, adjusted DB according to asmdb changes kobalicek 2017-02-14 18:40:31 +01:00
  • 216fb5a281 Added FastEval calling convention - AsmJit specific/experimental feature kobalicek 2017-02-11 02:34:09 +01:00
  • 43dbe48afc Added CodeCompiler::newSimilarReg, merged generate-xxx tools from next-wip branch, changed pcmpgtq to be in SSE4.2 group kobalicek 2017-02-09 14:15:08 +01:00
  • a984b508fc Clean-up (#153) Philipp Paulweber 2017-02-09 13:48:20 +01:00
  • 814cf62a85 Added validation of absolute memory address to the validator kobalicek 2017-02-03 17:50:51 +01:00
  • 13a5105fe0 Moved some hardcoded positions in tabled into template-based approach kobalicek 2017-02-03 17:44:58 +01:00
  • ff2bf109fc Minor improvements of CodeCompiler kobalicek 2017-02-02 15:14:07 +01:00
  • ef44e5a2f9 Fixed initialization of CodeHolder kobalicek 2017-02-02 03:17:38 +01:00
  • fa43c7be07 Make asmjit compile with all possible ASMJIT_DISABLE_... options kobalicek 2017-02-02 00:48:05 +01:00
  • 0943382a0c Minor changes, fixed a very rare X86Compiler bug in liveness analysis kobalicek 2017-02-02 00:35:30 +01:00
  • dc0ccfd74c Fix compilation with ICC (17.0.1) (#150) Michał Janiszewski 2017-01-26 21:36:10 +01:00
  • b7f6d1e369 Merged asmjit:next branch (#149) Petr Kobalicek 2017-01-26 15:55:03 +01:00
  • fb9f82cb61 Typo fix (Issue #143) svost 2016-11-11 22:34:49 +04:00
  • f900a92e13 [BUG] Fix avx512 detection (#136) Wenzel Jakob 2016-09-17 15:25:08 +02:00
  • a7d3c757e4 Updated README to inform about the next branch kobalicek 2016-09-13 00:53:15 +02:00
  • 6467c73ddf [BUG] Fixed a macro expansion from wordptr to word_ptr (only rip addressing affected) kobalicek 2016-07-10 05:30:56 +02:00
  • c908c3db8d Added ADX, TBM, CLFLUSH_OPT, PREFETCHW, and SHA instruction sets to Assembler and Compiler\nAdded initial support for AVX/AVX2 instructions into X86Compiler\nRenamed oword to dqword (intel convention)\nFixed incorrect XOP and FMA4 detection\nCosmetic changes in documentation\nFixed unused typedef warnings (clang) (related to #132) kobalicek 2016-07-03 23:05:43 +02:00
  • 6f6ca70c4c Fixed BMI and BMI2 (finally). kobalicek 2016-06-30 19:44:12 +02:00
  • 5db35108d0 Fixed MSVC compilation issues. kobalicek 2016-06-30 19:16:43 +02:00
  • d25f392c6e Minor code cleanup, fixed 64-bit BMI and BMI2 instructions kobalicek 2016-06-30 18:59:59 +02:00
  • 286bc22f49 Better compiler flags detection in CMakeLists.txt\nFixed missing noexcept in StaticRuntime.cpp kobalicek 2016-05-05 04:08:23 +02:00
  • f7de7b8d35 Added a test-case to verify stack allocation, attempt to fix #128 kobalicek 2016-04-16 16:35:58 +02:00
  • 9fc1dbfdcd Moved calling conventions to globals.h Fixed #128 kobalicek 2016-04-16 14:43:52 +02:00
  • f7ddd38777 Trying to trigger #126 kobalicek 2016-04-09 13:51:48 +02:00
  • 83682451b8 Mark clobbered registers when allocating "call" (X86Compiler) kobalicek 2016-04-09 04:55:00 +02:00
  • 02ba5cc35c renamed bswap32 to byteswap32 to avoid conflict with builtin freebsd macro James Laver 2016-04-03 14:14:04 +00:00
  • 446a5f1cb1 Improved asmjit trace - pretty print nodes being removed kobalicek 2016-03-29 04:57:56 +02:00
  • 6ef5878eca Minor compiler update - unreachable code remover will not remove labels. kobalicek 2016-03-29 01:01:28 +02:00
  • 95aacf9fd1 Moved addFunc() from X86Compiler to Compiler. Fixed CompilerContext not being reset after the first function is translated. kobalicek 2016-03-28 23:18:41 +02:00
  • 7b0e362ac6 Added ASMJIT_TRACE support to CMakeLists.txt kobalicek 2016-03-28 22:33:32 +02:00
  • 4a654c2c49 Fixed bug in PodVectorTmp<> implementation and added a test-case for it. kobalicek 2016-03-28 02:03:25 +02:00
  • b81004bc99 [Bug] Fixed a bug in X86Compiler::getIntPtr() not promoting intptr to int32/int64. Minor changes. kobalicek 2016-03-24 03:26:41 +01:00
  • 185a96a46a Reworked CpuInfo (removed X86CpuInfo, added ARM CpuInfo support). Renamed CodeGen to ExternalTool. Moved logger constants from asmjit namespace to asmjit::Logger. Moved AssemblerFeature constants from asmjit namespace to asmjit::Assembler. Added noexcept to most APIs that are not intended to throw. Added memory utilities that can read/write to unaligned memory location (ongoing ARM support). Removed unimplemented instruction scheduler, will be added back when it's working. kobalicek 2016-03-21 20:04:13 +01:00
  • a5cdf0b44b Updated x86inst. kobalicek 2016-03-10 18:02:02 +01:00
  • d7317987bf Added a link to chat-room to README.md. kobalicek 2016-03-10 18:01:38 +01:00
  • c31593c5ed Merge pull request #123 from alexjbest/master Petr Kobalicek 2016-03-09 00:07:56 +01:00
  • 374de74994 fixed bug in optimised align code Alex J. Best 2016-03-03 13:03:40 +00:00
  • 12495ceffc Fixed wrong commit kobalicek 2016-03-08 19:13:14 +01:00
  • a33393265b [BUG] Clear last error after X86Compiler is attached to X86Assembler (#120) kobalicek 2016-03-07 22:57:45 +01:00
  • 1b56ec62a9 Fixed invalid check in push/pop when used with a memory operand (32-bit). kobalicek 2016-01-20 02:17:45 +01:00
  • 7c197912fd Minor changes. kobalicek 2016-01-14 09:27:01 +01:00
  • 8f52f1ef87 Removed #pragma intrinsic(...), it's not needed anymore. kobalicek 2016-01-12 23:03:36 +01:00
  • fd91ba5fee Minor code cleanup, fixed variable shadowing and unused parameters. kobalicek 2016-01-12 03:14:23 +01:00
  • edc3c3b0af Fixed invalid check regarding VS2010. kobalicek 2016-01-11 03:46:23 +01:00
  • 75221286ab [BUG] Fixed a FPU bug (kX86InstEncodingIdFpuArith) introduced by bf8bba5bba [BUG] Fixed blend_bench tool kobalicek 2016-01-08 20:27:06 +01:00
  • 1c3570cb9b Refactored to use nullptr instead of NULL, if compiler supports it. kobalicek 2016-01-07 18:42:30 +01:00
  • eb7a6b0d26 Fixed ASMJIT_FALL_THROUGH detection. Renamed ASMJIT_FALL_THROUGH to ASMJIT_FALLTHROUGH. kobalicek 2016-01-06 23:41:22 +01:00
  • 89f8d4bbf8 Added ASMJIT_FALL_THROUGH to better deal with switch/case Replaced ASSERTs by runtime checks in X86Compiler intrinsics kobalicek 2016-01-06 21:08:21 +01:00
  • bf8bba5bba Added ASMJIT_NOEXCEPT macro Replaced some inlined ASSERTs by runtime checks in X86Assembler. kobalicek 2016-01-05 18:46:18 +01:00
  • e5f7b8b533 Added X86Compiler::ovewrite() modifier (instruction option) + other cosmetic changes. kobalicek 2016-01-04 16:17:42 +01:00