578 Commits

Author SHA1 Message Date
kobalicek
5c18fcafc5 [Bug] Don't repeat comment as inline comment when formatting a Builder/Compiler Node 2023-01-07 11:57:56 +01:00
kobalicek
5b5b0b3877 [CI] Updated CI configurations 2022-12-10 15:07:55 +01:00
kobalicek
45f3b764b3 [Bug] Fixed a ModRM/MR check in X86 assembler (mov instruction) (fixes #392) 2022-11-26 00:05:25 +01:00
Matthias Moninger
0c03ed2f74 Use static constexpr for RegTraits to make it possible to use asmjit in CLR environment (fixes #386) 2022-11-10 16:58:41 +01:00
aegistudio
5af57595a9 [Bug] Fixed LDURSW instruction on AArch64 (#389)
The instruction was wrongly described as supporting both W/X registers, however, it only supports X register.
2022-11-10 10:11:05 +01:00
Herman Semenov
ae63ced6dd Fixed offset index predicate in arm::Mem::post() (#388) 2022-11-04 09:54:19 +01:00
kobalicek
8f2c237b83 Added x86::Mem::cloneResized() to complement cloneAdjusted() and cloneBroadcasted() 2022-10-18 18:43:48 +02:00
kobalicek
15a6036618 Fixed iOS compilation (reworked MAP_JIT detection, and pthread_jit_write_protect_np() support) 2022-10-09 19:30:14 +02:00
Viktor Chlumský
bb3dc125fa Visual Studio 2015/2017 compatibility (#383) 2022-10-09 13:05:20 +02:00
Peter Meerwald-Stadler
8dd64c32ac [Doc] Fixed some typos (#382) 2022-10-07 10:58:58 +02:00
kobalicek
052b4430e9 Fixed indirect jumps to a single label (Compiler) (fixes #380) 2022-09-18 10:26:53 +02:00
kobalicek
5c469e3f7c Reversed the order of visualizing shuffles (via ExplainImm) to reflect their composition 2022-07-24 17:04:00 +02:00
kobalicek
3502a8fe0d [Build] Changed CMAKE_CXX_SIMULATE_ID to CMAKE_CXX_COMPILER_FRONTEND_VARIANT as that seems to be the valid variable for detecting a MSVC frontend 2022-07-24 13:51:53 +02:00
kobalicek
2ae2d897f4 [CI] Use newer macos images as the older ones were deprecated 2022-07-21 21:52:33 +02:00
kobalicek
c59847629d Use casting to suppress -Wbitwise-instead-of-logical warning instead of suppressing it globally 2022-07-02 10:03:51 +02:00
Orvid King
d3fbf7c9bc Fix an instance of -Wdeprecated-copy (#376) 2022-06-29 00:34:28 +02:00
kobalicek
35f92e8706 [Bug] The compiler should not bail when there is data before the FuncEnd node 2022-06-27 12:10:40 +02:00
kobalicek
70209cddd7 [Bug] Added a missing JitAllocator::query() (fixes #375) 2022-06-25 21:28:19 +02:00
kobalicek
06d0badec5 Suppress -Wbitwise-instead-of-logical warning that was introduced by clang 14 2022-06-22 00:30:34 +02:00
kobalicek
d0cdd70168 [Bug] Fixed incorrect encoding of LDRSH instruction with [base+imm] addressing (AArch64) (fixes #372) 2022-06-20 09:16:39 +02:00
kobalicek
24863770d6 [Doc] Updated documentation to use new API (fixes not fixed #368) 2022-06-17 12:35:21 +02:00
kobalicek
4244182486 [Doc] Updated documentation to use new API instead of the removed one (fixes #368) 2022-06-17 12:32:34 +02:00
kobalicek
d925605671 [Bug] Fixed incorrect encoding of LDRSB and LDRSH with [base+index] (AArch64) (fixes #370) 2022-06-17 12:26:34 +02:00
kobalicek
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
2022-06-05 22:59:38 +02:00
kobalicek
a4cb51b532 [Bug] Fixed not cloberring YMM|ZMM registers in function calls that preserve only low 128-bits of vector registers 2022-04-10 00:32:57 +02:00
kobalicek
8fdee13aea [Opt] Added a feature to the Compiler to remove dead moves (moves to itself) when it's provable that it's safe 2022-04-06 13:20:00 +02:00
Adrian Vogelsgesang
752eb38a4d [Bug] Fix formatting of anonymous labels (#362)
Anonymous labels accidentally called `sb.append` instead of
`sb.appendFormat` which messes up the label's formatting.
2022-04-05 13:18:10 +02:00
Adrian Vogelsgesang
a876e4d1cd Fixed typos in comments (#361) 2022-04-02 00:26:56 +02:00
kobalicek
e41f1c0fd7 Cleaned up AArch64 RAPass to not shadow variables in _rewrite() (Fixes #359) 2022-04-01 00:41:54 +02:00
kobalicek
7342f7d78d Added a pseudo instruction 'loadAddressOf()' to load a memory address into a register (Compiler/AArch64) 2022-03-27 22:33:35 +02:00
kobalicek
21a31b8a33 [Bug] Fixed incorrect control flow information of 'b' instruction (AArch64) (Fixes #358) 2022-03-20 22:40:31 +01:00
kobalicek
d754de58c2 [Bug] Fixed logging without ARM condition codes when logged via a64::Assembler 2022-03-20 19:27:04 +01:00
kobalicek
f1a399c4fe [Bug] Fixed invalid operand order in AArch64 register move (Compiler) 2022-03-15 10:37:18 +01:00
kobalicek
6efd4d563d Added missing baseReg() and indexReg() to arm::Mem operand 2022-02-24 22:39:07 +01:00
kobalicek
a4e1e88374 [Bug] Do not link to pthread library on Android (there is no such library) 2022-02-20 17:38:27 +01:00
kobalicek
62ffe595a2 [Bug] Fixed RM features reported by queryRWInfo (X86) 2022-02-19 21:43:07 +01:00
kobalicek
28c4d8c528 [Opt] Optimized memory footprint of Compiler when generating huge code 2022-02-16 16:42:32 +01:00
kobalicek
23ddf56b00 [ABI] Initial AArch64 support 2022-02-09 17:08:40 +01:00
kobalicek
45b0114781 [ABI] Added the possibility to retrieve stack locations of virtual registers and explicit stack allocations after compilation 2022-02-09 17:08:36 +01:00
kobalicek
9a92d2f972 [Bug] Removed invalid assumption in zonetree (fixes #352) 2022-01-18 09:53:31 +01:00
kobalicek
2a706fd2ba Reworked unaligned memory access to work better with GCC 11 2021-12-14 20:01:37 +01:00
kobalicek
2cfa686ebd [API] Fixed most static analysis issues reported by clang
[Bug] Workarounded GCC 11 issue affecting unaligned loads/stores (most likely a compiler bug)
2021-12-14 01:19:28 +01:00
kobalicek
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
2021-12-13 19:34:56 +01:00
Kian Meng Ang
4ec760a3d1 Fixed typos in documentation (#348) 2021-11-13 09:24:21 +01:00
tetzank
d0d14ac774 [Bug] Fixed compile-time issue with ASMJIT_NONCOPYABLE/NONCONSTRUCTIBLE for GCC 11 in C++20 mode (#343)
* fixed GCC 11 compilation in C++20 mode (don't use template parameters in constructors/operator assignment)
* refactored ASMJIT_NONCOPYABLE/NONCONSTRUCTIBLE (variadic macros not needed)
2021-09-03 14:52:26 +02:00
kobalicek
d02235b834 Refactored naming of data types in formatted text, which is now part of architecture traits 2021-06-27 00:39:53 +02:00
kobalicek
0a709c7a28 In addition to LEA, allow CL* and PREFETCH* instructions to have memory operand of any size 2021-06-27 00:39:18 +02:00
kobalicek
c329fa7ce0 [Bug] Don't emit useless 'sub esp, 0' after calling a void function (Compiler) 2021-06-24 23:51:48 +02:00
kobalicek
78de7d9c81 [Bug] Fixed a bug introduced by the previous commit (enable /dev/shm on non-android targets) 2021-05-18 15:17:22 +02:00
kobalicek
8ee4c76ee3 [Bug] Fixed android build (Android doesn't provide shm_open() and shm_unlink() functions) 2021-05-16 22:08:06 +02:00