Commit Graph

  • c59847629d Use casting to suppress -Wbitwise-instead-of-logical warning instead of suppressing it globally master kobalicek 2022-07-01 23:53:14 +02:00
  • d3fbf7c9bc Fix an instance of -Wdeprecated-copy (#376) Orvid King 2022-06-28 15:34:28 -07:00
  • 35f92e8706 [Bug] The compiler should not bail when there is data before the FuncEnd node kobalicek 2022-06-27 12:10:40 +02:00
  • 70209cddd7 [Bug] Added a missing JitAllocator::query() (fixes #375) kobalicek 2022-06-25 21:28:19 +02:00
  • 06d0badec5 Suppress -Wbitwise-instead-of-logical warning that was introduced by clang 14 kobalicek 2022-06-21 23:47:57 +02:00
  • d0cdd70168 [Bug] Fixed incorrect encoding of LDRSH instruction with [base+imm] addressing (AArch64) (fixes #372) kobalicek 2022-06-20 09:16:39 +02:00
  • 24863770d6 [Doc] Updated documentation to use new API (fixes not fixed #368) kobalicek 2022-06-17 12:35:21 +02:00
  • 4244182486 [Doc] Updated documentation to use new API instead of the removed one (fixes #368) kobalicek 2022-06-17 12:32:34 +02:00
  • d925605671 [Bug] Fixed incorrect encoding of LDRSB and LDRSH with [base+index] (AArch64) (fixes #370) kobalicek 2022-06-17 12:26:28 +02:00
  • 33a31f04e8 [Bug] Fixed queryFeatures() to properly return AVX-512 requirements of shift instructions that use memory operands [Bug] Fixed queryFeatures() to properly return AVX-512 requirements of some floating-point conversion instructions [Opt] Slightly improved the performance of BitWordIterator and friends possibly taking advantage of BMI extensions [API] Removed BitWordFlipIterator that was never used by the library [Enh] Log the whole instruction if the validation fails in asmjit::Builder kobalicek 2022-06-05 22:45:15 +02:00
  • a4cb51b532 [Bug] Fixed not cloberring YMM|ZMM registers in function calls that preserve only low 128-bits of vector registers kobalicek 2022-04-10 00:32:57 +02:00
  • 8fdee13aea [Opt] Added a feature to the Compiler to remove dead moves (moves to itself) when it's provable that it's safe kobalicek 2022-04-05 00:00:30 +02:00
  • 752eb38a4d [Bug] Fix formatting of anonymous labels (#362) Adrian Vogelsgesang 2022-04-05 13:18:10 +02:00
  • a876e4d1cd Fixed typos in comments (#361) Adrian Vogelsgesang 2022-04-02 00:26:56 +02:00
  • e41f1c0fd7 Cleaned up AArch64 RAPass to not shadow variables in _rewrite() (Fixes #359) kobalicek 2022-04-01 00:41:54 +02:00
  • 7342f7d78d Added a pseudo instruction 'loadAddressOf()' to load a memory address into a register (Compiler/AArch64) kobalicek 2022-03-27 22:33:35 +02:00
  • 21a31b8a33 [Bug] Fixed incorrect control flow information of 'b' instruction (AArch64) (Fixes #358) kobalicek 2022-03-20 22:40:31 +01:00
  • d754de58c2 [Bug] Fixed logging without ARM condition codes when logged via a64::Assembler kobalicek 2022-03-20 19:27:04 +01:00
  • f1a399c4fe [Bug] Fixed invalid operand order in AArch64 register move (Compiler) kobalicek 2022-03-15 10:36:41 +01:00
  • 6efd4d563d Added missing baseReg() and indexReg() to arm::Mem operand kobalicek 2022-02-24 22:39:07 +01:00
  • a4e1e88374 [Bug] Do not link to pthread library on Android (there is no such library) kobalicek 2022-02-20 17:38:27 +01:00
  • 62ffe595a2 [Bug] Fixed RM features reported by queryRWInfo (X86) kobalicek 2022-02-19 19:46:55 +01:00
  • 28c4d8c528 [Opt] Optimized memory footprint of Compiler when generating huge code kobalicek 2022-02-16 12:32:50 +01:00
  • 23ddf56b00 [ABI] Initial AArch64 support kobalicek 2022-02-08 16:25:47 +01:00
  • 45b0114781 [ABI] Added the possibility to retrieve stack locations of virtual registers and explicit stack allocations after compilation kobalicek 2022-01-23 13:16:27 +01:00
  • 4792bd8d87 Merge remote-tracking branch 'upstream/aarch64' into aarch64 aarch64 Nekotekina 2022-02-09 14:29:59 +03:00
  • c669c45d5b [ABI] Initial AArch64 support abi_1_9 kobalicek 2022-02-08 16:25:47 +01:00
  • 0d974224e2 [ABI] Added the possibility to retrieve stack locations of virtual registers and explicit stack allocations after compilation kobalicek 2022-01-23 13:16:27 +01:00
  • 5ee168c7de [ABI] Added the possibility to retrieve stack locations of virtual registers and explicit stack allocations after compilation virtreg_info kobalicek 2022-01-23 13:16:27 +01:00
  • f25874d2d9 Added initial AArch64 support kobalicek 2022-01-08 12:44:56 +01:00
  • 9a92d2f972 [Bug] Removed invalid assumption in zonetree (fixes #352) kobalicek 2022-01-18 09:53:31 +01:00
  • fc2a5d82f7 Added unsigned offset type to OffsetType, fixed code that relied on signed offsets where unsigneds are necessary kobalicek 2022-01-04 18:22:51 +01:00
  • 4223a28a79 [Bug] Fixed relocation of AArch64 instructions (invalid reloc entries and logic) kobalicek 2022-01-04 14:10:34 +01:00
  • eae7197fce Added initial AArch64 support kobalicek 2021-12-14 20:04:13 +01:00
  • 2a706fd2ba Reworked unaligned memory access to work better with GCC 11 kobalicek 2021-12-14 19:03:31 +01:00
  • 2cfa686ebd [API] Fixed most static analysis issues reported by clang [Bug] Workarounded GCC 11 issue affecting unaligned loads/stores (most likely a compiler bug) kobalicek 2021-12-13 23:58:02 +01:00
  • 996deae327 [ABI] Refactored AsmJit to use strong-typed enums, this breaks both API and ABI [ABI] Added ABI version as an inline namespace, which forms asmjit::_abi_MAJOR_MINOR [ABI] Added support for AVX512_FP16, 16-bit broadcast, and AVX512_FP16 tests [ABI] Added initial support for consecutive registers into instruction database and register allocator [ABI] Added a possibility to use temporary memory in CodeHolder's zone [ABI] Compiler::setArg() is now deprecated, use FuncNode::setArg() [Bug] Fixed correct RW information of instructions that only support implicit zeroing with {k} [Bug] Fixed broadcast to be able to broadcast bcst16 operands kobalicek 2021-12-13 09:11:58 +01:00
  • 4ec760a3d1 Fixed typos in documentation (#348) Kian Meng Ang 2021-11-13 16:24:21 +08:00
  • d0d14ac774 [Bug] Fixed compile-time issue with ASMJIT_NONCOPYABLE/NONCONSTRUCTIBLE for GCC 11 in C++20 mode (#343) tetzank 2021-09-03 14:52:26 +02:00
  • d02235b834 Refactored naming of data types in formatted text, which is now part of architecture traits kobalicek 2021-06-27 00:08:17 +02:00
  • 0a709c7a28 In addition to LEA, allow CL* and PREFETCH* instructions to have memory operand of any size kobalicek 2021-06-27 00:39:18 +02:00
  • c329fa7ce0 [Bug] Don't emit useless 'sub esp, 0' after calling a void function (Compiler) kobalicek 2021-06-24 23:51:48 +02:00
  • 78de7d9c81 [Bug] Fixed a bug introduced by the previous commit (enable /dev/shm on non-android targets) kobalicek 2021-05-18 15:17:22 +02:00
  • 8ee4c76ee3 [Bug] Fixed android build (Android doesn't provide shm_open() and shm_unlink() functions) kobalicek 2021-05-16 09:33:45 +02:00
  • 0dd16b0a98 [Bug] Fixed RW metadata of KXNORx and KXORx instructions (Compiler) kobalicek 2021-04-13 19:01:36 +02:00
  • a4dd0b2d8b [ABI] Build improvements - replaced ASMJIT_BUIlD_X86 with ASMJIT_NO_X86 and other changes... kobalicek 2021-03-21 13:50:25 +01:00
  • e7a728018e [Bug] Fixed X86 instruction info query asserting on MMX variation of pextrw (Fixes #330) kobalicek 2021-03-19 09:31:12 +01:00
  • e822fba53e [ABI] Added the possibility to use AVX512 in Compiler and FuncFrame kobalicek 2021-03-14 22:06:54 +01:00
  • 7836449c30 Added asmjit_test_perf, which replaces asmjit_bench and provides much better performance overview Removed asmjit_test_opcode (not needed anymore as we have asmjit_test_assembler and asmjit_test_perf) kobalicek 2021-03-13 22:25:43 +01:00
  • c9cebc67bc Split assembler tests so they can compile much faster with GCC kobalicek 2021-03-13 14:28:05 +01:00
  • 8b35b4cffb Added support for PROT_MAX() in VirtMem::alloc() and refactored VirtMem a bit kobalicek 2021-03-06 09:05:42 +01:00
  • 19f1768dbe [Bug] Don't allocate k0 register (x86::Compiler) kobalicek 2021-03-04 01:37:22 +01:00
  • a305905d32 [Bug] Return reported error in BaseCompiler::_newInvokeNode() kobalicek 2021-02-28 11:42:08 +01:00
  • 5a5fb8af4c [Bug] Fixed VPERMQ incorrectly reporting AVX2 instead of AVX512-F features (X86 features API) kobalicek 2021-02-09 02:41:57 +01:00
  • 2ab380e0bd [Bug] [Critical] [ABI] Update that fixes all problems discovered by comparison with LLVM-MC kobalicek 2021-02-03 09:34:19 +01:00
  • f36ea0c031 [ABI] Added ljmp, lcall, and lret instructions (fixes #310) kobalicek 2021-01-27 21:05:04 +01:00
  • 71fb24cb11 BaseEmitter::commentf() shouldn't format string, which will be discarded by the emitter (fixes #306) kobalicek 2021-01-26 14:27:57 +01:00
  • 6678143772 [ABI] X86/X64 GP registers should use the real type (GpbLo, GpbHi, Gpw, Gpd, Gpq) and not just Gp (fixes #292) kobalicek 2021-01-26 01:30:59 +01:00
  • 0636dd316a [Bug] Fixed instruction signatures issue introduced by the previous commit kobalicek 2021-01-26 01:09:35 +01:00
  • 58b6c025f2 [ABI] Added more AVX_VNNI instructions, added MOVABS for explicit Imm64 encodings, added more assembler tests kobalicek 2021-01-26 01:00:10 +01:00
  • 1422faa011 [Bug] Fixed a possible compilation error when using non-uint64_t value as immediate instead of Imm (ambiguity) kobalicek 2021-01-22 20:44:51 +01:00
  • 723f58581a Fixed a possible issue when compiling with gcc-11 (#320) oldstable Ivan 2021-01-09 04:13:51 +03:00
  • 70e80b18a5 [Bug] Jump annotation to entry block fix kobalicek 2021-01-02 01:32:55 +01:00
  • 13876c4e5e Improved JitAllocator to not reiterate the whole block on every allocation kobalicek 2021-01-02 01:31:15 +01:00
  • 45fe60f93d [Bug] Fixed instruction RW info related to AVX-512 {k} (merging) and {k} {z} (zeroing) kobalicek 2021-01-02 01:24:46 +01:00
  • 173f09df35 [Bug] Fixed invalid fill in JitAllocator::shrink() when kOptionFillUnusedMemory is in use by JitAllocator (Critical) kobalicek 2020-12-26 20:12:14 +01:00
  • c165c00271 Fixed a possible bug that may trigger assertion failure in JitAllocator::alloc() due to not marking an empty block properly (#316) kobalicek 2020-12-26 12:16:09 +01:00
  • 3b886c8b7b Fixed the use of __buildin___clear_cache() kobalicek 2020-12-10 01:21:16 +01:00
  • 4b13f71314 Improved GitHub workflows kobalicek 2020-11-08 23:14:02 +01:00
  • 2199c7d4e7 Improved CI problem matching by always doing out-of-source build (Ninja issue) kobalicek 2020-11-07 19:25:47 +01:00
  • fe89388e52 Added problem matchers to CI workflow kobalicek 2020-11-07 16:05:16 +01:00
  • 88129d7389 [Bug] Don't unlink immediately when creating anonymous memory file, switch to GH actions (Fixes #312) kobalicek 2020-11-04 21:16:00 +01:00
  • cb13f69983 Support for using <windows.h> even without NOMINMAX kobalicek 2020-10-26 09:18:37 +01:00
  • 973f5c9c5c [Bug] Fixed incorrect mov_abs instruction size checking logic (#311) kobalicek 2020-10-25 00:36:04 +02:00
  • a281426ca6 [CMake] Include GNUInstallDirs after project() kobalicek 2020-10-07 16:50:42 +02:00
  • 3c4415d729 [Bug] NetBSD build needs librt (#305) David CARLIER 2020-09-28 23:57:40 +01:00
  • a4341e811d Fix typo on features.h (#303) Samuel Pordeus 2020-09-28 19:17:49 -03:00
  • cfdf5bd4eb FreeBSD: Fix compilation with -Werror (#302) Emmanuel Vadot 2020-09-27 16:48:06 +02:00
  • b49d685cd9 Added github funding file kobalicek 2020-09-22 20:16:28 +02:00
  • d7d3db1c4f Updated README.txt and removed a file that is not used anymore kobalicek 2020-09-16 01:03:38 +02:00
  • 5bc166efdb Updated README.md (Sponsors) kobalicek 2020-09-12 19:55:16 +02:00
  • cd44f41d9b Preparation for AArch64 support kobalicek 2020-09-12 16:25:35 +02:00
  • 9cb2b298e1 Avoid an unused argument warning when compiling AsmJit (#301) Max Bernstein 2020-09-12 03:01:35 -07:00
  • 94061cd294 [Bug] Fixed ZoneVector reverse iterators and rbegin()/rend() - bug introduced by a previous commit kobalicek 2020-09-12 09:32:38 +02:00
  • 358d944bf2 Simplify ZoneVector iterators, use std::lower_bound() instead a custom implementation kobalicek 2020-09-06 22:08:04 +02:00
  • bbe6b457a1 Fixed Solaris build (cannot use EAX, EDX, etc as these are macros) kobalicek 2020-09-04 22:28:00 +02:00
  • d1b7543488 Added an initial cmake export support so users can find installed asmjit (Fixes #290) kobalicek 2020-08-29 21:39:55 +02:00
  • 8f25116f2b [Bug] Extended Family Id calculation incorrect (fixes #298) Markus Schmidl 2020-08-19 14:57:19 +01:00
  • 0646d0a48f [Bug] Added a possibility to order sections so the address table section can stay last even when user creates sections after it has been created (#293) kobalicek 2020-08-07 23:44:44 +02:00
  • 10be0c8f1d Added parameter pack to function arguments and return values kobalicek 2020-08-08 16:08:36 +02:00
  • 8474400e82 [Bug] Fixed RW info of string instructions, fixed lodsx() helper intructions in emitter kobalicek 2020-07-10 23:21:36 +02:00
  • 509866ef12 [Bug] Fixed invalid code generation related to lookup tables (Compiler) kobalicek 2020-07-10 17:34:03 +02:00
  • c130455898 Added ASMJIT_NO_FOREIGN compile-time option to disable non-host architectures in the future kobalicek 2020-07-07 10:27:46 +02:00
  • 2de7e74244 Instruction validator now doesn't pass 'push/pop [mem]' having unknown size kobalicek 2020-07-06 00:09:17 +02:00
  • ae4ad9075d Fixed signatures of recently added ud0 and ud1 instructions, added two-operand NOP (fixes #217) kobalicek 2020-07-05 13:32:53 +02:00
  • 75f2b69a26 Added new instructions and removed deprecated PCOMMIT kobalicek 2020-07-05 00:45:03 +02:00
  • ba30278d66 Added support for more X86 extensions (AMX, AVX512_VP2INTERSECT, MCOMMIT, RDPRU, SERIALIZE, SNP, TSXLDTRK) kobalicek 2020-06-30 20:42:22 +02:00
  • 3535263419 Added ASMJIT_API to BaseEmitter::_emitOpArray() + other minor changes kobalicek 2020-06-24 22:51:04 +02:00
  • 5bd643058a Improved embedLabel() - now it's possible to specify the dataSize kobalicek 2020-06-21 16:33:16 +02:00
  • 87c566a32e [Bug] Fixed validation of memory operand with Label as a base address. kobalicek 2020-06-16 10:46:13 +02:00