Commit Graph

  • b9b1ad6fae Added ASMJIT_NOT_REACHED() to better deal with unreachable code. Added Visual Studio 2015 scripts and fixed asmjit_test_x86 which now compiles under VS2015 Added StringLogger::getLength() Added methods to X86Compiler to create a variable operand by its ID kobalicek 2016-01-02 16:24:54 +01:00
  • 9e100d11a1 CxxTool update. kobalicek 2015-12-18 00:57:39 +01:00
  • 5cb7d976e7 Added Operand::reset(). kobalicek 2015-12-16 18:14:57 +01:00
  • e726dd3872 Make alignment of a stack required by a function call proper. kobalicek 2015-12-15 17:06:27 +01:00
  • bda7673558 Minor. kobalicek 2015-12-12 18:08:02 +01:00
  • 1e322d4922 Coding style. kobalicek 2015-12-08 13:30:44 +01:00
  • 3fcd65cf80 - Moved to cxxtool to generate build.h compiler and platform based definitions. - Compiler no longer works on its own, it requires Assembler. - Labels created by Assembler and Compiler now share their IDs, so they can be used nearly interchangeably without weird side-effects and hacks. - Renamed getError() and setError() to getLastError() and setLastError(). - Renamed compiler nodes to "HL" nodes (preparation for HLStream). - Renamed FuncConv to CallConv. - Function calling convention is now part of FuncPrototype. - Added a possibility to align by inserting zeros (kAlignZero) - Fixed assertion in X86Compiler that didn't like unhandled function argument(s). - Added Compiler::embedConstPool() helper, which can be handy if you use your own ConstPool. - Code refactorization and other minor changes. - CpuTicks::now() renamed to Utils::getTickCount(). - error.h merged with globals.h - Documentation updates related to recent API changes. kobalicek 2015-12-07 07:34:25 +01:00
  • 6758955e8c Fixed Issue #114 kobalicek 2015-11-30 10:00:37 +01:00
  • a910f05c66 Merge pull request #110 from tizgrape/cygwin Petr Kobalicek 2015-11-11 12:20:56 +01:00
  • 1853bd388c Build AsmJit with Windows ABI on Cygwin Hui Z 2015-11-09 17:19:35 +08:00
  • 31c0b46710 Fixed #107 kobalicek 2015-10-25 21:10:39 +01:00
  • dacd9eb641 Fixed #106 kobalicek 2015-10-13 19:18:54 +02:00
  • 4ad2729632 Fixed #105 kobalicek 2015-10-13 11:03:56 +02:00
  • 34131ca895 Merge pull request #101 from blackbird8010/cputicks_now_mac_fix Petr Kobalicek 2015-10-04 13:16:46 +02:00
  • 95f401c600 asmjit::CpuTicks:now(): fixed control flow for first-time call on OS Mac. Helmuth Ploner 2015-10-04 12:22:22 +02:00
  • b0dad1af25 Fixed #98 kobalicek 2015-08-28 17:11:48 +02:00
  • 938691c736 Link update kobalicek 2015-08-25 12:01:02 +02:00
  • 6061d4b7cf Trigger travis-ci. kobalicek 2015-07-02 23:40:39 +02:00
  • bd0d261e8b Fixed #95 kobalicek 2015-06-26 10:30:33 +02:00
  • 6ed69102a4 Fixed vbroadcastss instruction (ymm not honored) (bug in instruction tables) kobalicek 2015-06-23 18:29:36 +02:00
  • 4dbaf70c31 Reduced the size of instruction names array by 2kB by merging shorter names into longer names. kobalicek 2015-06-20 20:50:55 +02:00
  • 7259dc3f45 Minor. kobalicek 2015-06-18 09:50:45 +02:00
  • c3fcc3231a Fixed extrq instruction. kobalicek 2015-06-18 00:11:22 +02:00
  • ecda2e12f1 Fixed AVX instructions vmovss and vmovsd. Improved asmjit_test_opcode to generate code that is easier to verify manually. kobalicek 2015-06-17 22:44:21 +02:00
  • 3c477177d2 Fixed AVX/XOP bugs when encoding instruction that uses register(s) with index greater than 7. Refactored a bit testing code and added ability to asmjit_test_opcode to use registers having indexes greater than 7. kobalicek 2015-06-17 21:19:29 +02:00
  • ec8eb0dd47 [BUG] Fixed REX.W prefix in short form of arithmetic instruction (REX.W was deleted by opcode = ...) kobalicek 2015-06-15 21:39:26 +02:00
  • 3d3d5f5426 Minor - Fixed asmjit pseudo types used by function builder kobalicek 2015-05-20 19:50:00 +02:00
  • 3d62c94c8e Fixed pextrw SSE instruction, added a possibility to Compiler to handle non-initialized variables in alloc(), spill(), ... kobalicek 2015-05-18 11:33:14 +02:00
  • 9001d2f2b7 Added a possibility to use RIP addressing. kobalicek 2015-03-27 01:12:41 +01:00
  • 9b48ec0f1e Fixed tracing. Added possibility to unfollow jump (#7). Added possibility to return from multiple locations in code (related to unfollow). Added more tests. Moved some functions from X86Context to Context. kobalicek 2015-03-01 17:08:38 +01:00
  • bac4a2b14c Fixed #79 kobalicek 2015-02-28 00:36:50 +01:00
  • fa1f8346e2 Fixed #78 kobalicek 2015-02-27 23:57:58 +01:00
  • 11c09b8b59 Added IDIV test. kobalicek 2015-02-25 09:49:59 +01:00
  • 31f881350e Fixed a minor bug in Compiler::comment(). kobalicek 2015-02-15 20:45:02 +01:00
  • a587fc94d0 - Implemented intersectStates() - Minor changes in logging (logger now prints liveness analysis related to labels) - Removed some TODOs. kobalicek 2015-02-14 15:33:38 +01:00
  • f289d83e5e Fixed #73 kobalicek 2015-02-13 01:23:49 +01:00
  • f0be9f5dd9 Fixed #72 (Memory used by fist/fld was wrongly adjusted). kobalicek 2015-02-12 23:07:09 +01:00
  • 5f04cbb8ec Added support return values that are using FPU (function call and function return). kobalicek 2015-02-09 03:27:19 +01:00
  • 351fbcbf57 Added 32-bit build to travis-ci build matrix (will fail). kobalicek 2015-02-09 01:52:27 +01:00
  • bc77b3680f Don't exclude gcc in travis-ci. Asmjit_test should show info about current CPU. kobalicek 2015-02-09 01:11:50 +01:00
  • ac37abcb36 Travis experiment. kobalicek 2015-02-09 00:56:49 +01:00
  • 0b1fae4438 Fixed some clang warnings. kobalicek 2015-02-09 00:51:12 +01:00
  • 24941e5ab9 Fixed return code in asmjit_test_x86. kobalicek 2015-02-09 00:09:22 +01:00
  • de444b874a - AsmJit executables should have consistent prefix 'asmjit'. - Added 'char' to type-id for function argument to typeId conversion. - Added asmjit_test_x86 to be called by continuous integration. kobalicek 2015-02-09 00:03:27 +01:00
  • ba1c7ef145 Added a test related to issue #70. kobalicek 2015-02-07 15:21:10 +01:00
  • d82243c4c1 Fixed #68 kobalicek 2015-01-31 13:32:49 +01:00
  • 1dfa2724d7 Minor - X86Assembler int/uint64_t overloads fail sometimes in sense that C++ compiler sees them ambiguous. This only makes it cleaner, but doesn't solve the problem. kobalicek 2015-01-24 14:27:35 +01:00
  • 6d24372579 X86CpuInfo::callCpuId() - added support for VS2008 and lesser. kobalicek 2015-01-21 18:59:34 +01:00
  • 8b3a10dc22 Minor. kobalicek 2015-01-20 00:07:36 +01:00
  • 85c406c2ba Added casting methods to X86GpReg, X86XmmReg, X86YmmReg, and X86ZmmReg. kobalicek 2015-01-18 22:10:36 +01:00
  • 8b4c4ae739 Fixed invalid assertions in case that high byte register is used in 64-bit mode, also fixed to NOT emit a REX prefix in that case (Bug). kobalicek 2015-01-13 22:48:52 +01:00
  • 728490a4bf CpuInfo and X86CpuInfo can now compile under VS2003. kobalicek 2015-01-11 20:57:19 +01:00
  • 099f4a0180 Don't use _BitScanForward while compiling by VS2003 kobalicek 2015-01-11 20:54:09 +01:00
  • 4e308cce39 Fixed typo in callCpuId when compiled by VS2003. kobalicek 2015-01-11 20:47:10 +01:00
  • a67e8fc694 Minor refactor of constants (don't use k prefix in enum type, only values), fixed some compilation problems with VS2003. kobalicek 2015-01-11 20:44:41 +01:00
  • f8a1de724a Merge pull request #66 from Zeex/logformat-fix Petr Kobalicek 2015-01-09 01:08:32 +01:00
  • 4de6a1d81e Fix invalid buffer length in logFormat() Zeex 2015-01-07 19:23:46 +06:00
  • 48da90ded7 Merge pull request #63 from kirbyfan64/master Petr Kobalicek 2014-12-01 21:54:41 +01:00
  • ee1cf60114 Fix Clang warning about -f-inline-functions Ryan Gonzalez 2014-11-30 14:28:57 -06:00
  • e8cd5b9924 Fixed issue #62 kobalicek 2014-11-29 22:08:31 +01:00
  • c4c2eb52ba Minor kobalicek 2014-11-29 22:08:04 +01:00
  • f95a065ee2 Fixed some minor issues reported by clang kobalicek 2014-11-17 00:28:56 +01:00
  • 06f1dbb32d Fixed a bug caused by refactoring and improper testing (32-bit build affected only). kobalicek 2014-11-09 15:43:35 +01:00
  • 515d854d10 Refactored slightly some constants and operand handling in X86Assembler. Refactored asmjit::x86 register definitions (now exported as a single symbol). Refactored bit utilities, now using proper naming like or_, and_, andNot. Refactored X86RegCount and X86RegMask to support K instead of Fp register. Refactored X86 instruction table (won't stay for long, new tool to export it is in development). Renamed instruction group to instruction encoding. Added XSAVE/OSXSAVE and other CPU features to X86CpuInfo. Added proper AVX and AVX-512 detection to X86CpuInfo. Added support to get content of XCR0 in X86CpuInfo (callXGetBV). Added XSAVE instruction set support (Assembler/Compiler). Added SSE4a instruction set support (Assembler/Compiler). Added X86KReg and X86KVar register/variable support (AVX-512). Added X86ZmmReg and X86ZmmVar register/variable support (AVX-512). kobalicek 2014-11-01 13:07:56 +01:00
  • 1318c9aff7 Fixed warning related to disabledTrace(). kobalicek 2014-09-29 23:09:08 +02:00
  • fd0972d9c6 Emit/Log instruction with immediate properly if memory operand has been used with Label. kobalicek 2014-09-29 20:29:30 +02:00
  • 80687fc47a Added kX86Cmp enum. kobalicek 2014-09-29 02:52:38 +02:00
  • 2c750024db Fixed ConstPool traversing bug. kobalicek 2014-09-26 01:07:53 +02:00
  • 0cff228354 Fixed CMakeLists.txt (again). kobalicek 2014-09-22 19:02:07 +02:00
  • d9f5a525e5 Fixed cmake crashing after secondary run. kobalicek 2014-09-21 21:12:45 +02:00
  • 04c58c6fa2 Merge pull request #55 from kobalicek/issue_53 Petr Kobalicek 2014-09-21 20:48:24 +02:00
  • a7c501e1fe Fixed Issue #53 (assigning to RelocData has no effect after added in the RelocData list). Refactored slightly so RelocData always uses rd variable name and added a scope into the buggy locations. kobalicek 2014-09-21 20:41:30 +02:00
  • 5185b555fe ASMJIT_OFFSET_OF should cast to int kobalicek 2014-09-20 00:29:34 +02:00
  • 6ca44dfb7a Fixed #52 kobalicek 2014-09-20 00:29:04 +02:00
  • eef8f78953 Removed contribs Added some misc methods to Compiler. Moved reset() from X86Var to Var. kobalicek 2014-09-17 20:31:53 +02:00
  • 66a863c004 Always function argument varType to architecture specific one (Fixed #49), test-case included. kobalicek 2014-09-15 23:48:10 +02:00
  • cf3b6ccb5b Fixed structure alignment linker warning (MSVC) related to Operand. kobalicek 2014-09-15 09:12:19 +02:00
  • 9ead0cfb4c - Initial support for StaticRuntime (known base address before the code address is generated). - Bind moved from X86Assembler to Assembler. - Added helpers to get offset of labels (useful after the code is generated). - Added support to cache and reuse Assembler if only Compiler is used. - CodeGen getFeature(), setFeature() and friends are now inlined. - Added offset to TargetNode, which is filled after the code is serialized. kobalicek 2014-09-08 20:24:31 +02:00
  • d7fc62d9e9 Merge pull request #45 from xantares/mingw Petr Kobalicek 2014-07-21 20:15:00 +02:00
  • 2475e3f80a Install dll in <prefix>/bin xantares 2014-07-17 07:13:29 +00:00
  • f82fd80305 Install if not ASMJIT_EMBED xantares 2014-07-17 07:11:51 +00:00
  • 104e857b6c README update. kobalicek 2014-07-17 00:46:01 +02:00
  • 895d33d465 Documentation fixes. kobalicek 2014-07-15 21:31:23 +02:00
  • 3363e4138b Merge pull request #42 from kobalicek/incremental Petr Kobalicek 2014-07-12 22:03:22 +02:00
  • fa955663e3 Changed asmjit namespaces, each architecture has now only one namespace for registers / memory operands. Changed instruction table schema to minimize its size and added use of EFLAGS register (for scheduler). Changed the rest of intrinsics accepting void* to accept Ptr instead. Changed clear()/reset() concept - only reset() now exists and accepts a releaseMemory argument. Changed unit tests to use bundled Broken framework. Moved podvector and podlist to base/containers. Added CMPS, LODS, MOVS, SCAS, STOS instructions. Added Label::isInitialized() and Var::isInitialized(). Added X86Scheduler stub - preparing for instruction reordering. Added support for tracing (see ASMJIT_TRACE) to allow consumers to find bugs in AsmJit quicker. Fixed possible Zone memory leak. Fixed and improved alloc/spill (added support for home register which asmjit honors from now). Fixed Assembler LEA REG, [LABEL] bug. Fixed [Mem, Imm] instructions with zero-sized operand to return error instead of emitting garbage. Fixed minor bug in VMemMgr - always point to a correct hProcess so it can be used properly (#41). kobalicek 2014-07-12 17:50:35 +02:00
  • a66efd5460 Minor kobalicek 2014-06-07 21:57:07 +02:00
  • 0dbd42f350 Line endings kobalicek 2014-06-07 19:23:35 +02:00
  • c87814b225 Added librt dependency on Linux by default. kobalicek 2014-06-06 22:18:51 +02:00
  • c05f11ce5c More Travis. Fixed bug in IntUtil::isInt32(). Added possibility to disable instruction names (for static compiling). Added ASMJIT_... wrappers also to winremoteruntime. Fixed some instructions (wrong order in enum and x86inst.cpp). kobalicek 2014-06-06 22:05:52 +02:00
  • 95e9fe41d2 Reworked _InterlockedCompareExchange a bit more... kobalicek 2014-06-06 12:32:45 +02:00
  • eb1a71f58a Added missing pragma for _InterlockedCompareExchange kobalicek 2014-06-06 12:24:11 +02:00
  • e5387eaaca Fixed #35 (namespace x86x64 in x86regs.h not included). kobalicek 2014-06-06 10:41:43 +02:00
  • c64931abdb Removed junk x86/x86defs.h (#36) kobalicek 2014-06-06 10:34:19 +02:00
  • 5679a1fefd Added Travis kobalicek 2014-06-05 19:40:33 +02:00
  • 24c7d5afbd Minor. kobalicek 2014-06-05 11:09:28 +02:00
  • df618fa24d Added back interface to override default functions for memory allocation (ASMJIT_ALLOC, ASMJIT_REALLOC, ASMJIT_FREE). kobalicek 2014-06-05 11:02:38 +02:00
  • db322d5dc1 Added minimalist unit testing (and removed some apps that did some tests). kobalicek 2014-06-04 22:12:52 +02:00
  • 02a9d6abbd Added ability to disable logging at completely at compile-time (reducing asmjit size a bit). Added ability to disable Compiler completely at compile-time (reducing asmjit size a lot). kobalicek 2014-05-30 17:02:03 +02:00
  • f77a04ba04 Doc update. kobalicek 2014-05-30 14:59:07 +02:00
  • cc2909f0db Minor changes. Added possibility to get x86/x64 instruction id by name. kobalicek 2014-05-30 14:49:22 +02:00