138 Commits

Author SHA1 Message Date
kobalicek
24941e5ab9 Fixed return code in asmjit_test_x86. 2015-02-09 00:09:22 +01:00
kobalicek
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.
2015-02-09 00:03:27 +01:00
kobalicek
ba1c7ef145 Added a test related to issue #70. 2015-02-07 15:21:10 +01:00
kobalicek
d82243c4c1 Fixed #68 2015-01-31 13:32:49 +01:00
kobalicek
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. 2015-01-24 14:27:35 +01:00
kobalicek
6d24372579 X86CpuInfo::callCpuId() - added support for VS2008 and lesser. 2015-01-21 18:59:34 +01:00
kobalicek
8b3a10dc22 Minor. 2015-01-20 00:07:36 +01:00
kobalicek
85c406c2ba Added casting methods to X86GpReg, X86XmmReg, X86YmmReg, and X86ZmmReg. 2015-01-18 22:10:36 +01:00
kobalicek
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). 2015-01-13 22:48:52 +01:00
kobalicek
728490a4bf CpuInfo and X86CpuInfo can now compile under VS2003. 2015-01-11 20:57:19 +01:00
kobalicek
099f4a0180 Don't use _BitScanForward while compiling by VS2003 2015-01-11 20:54:09 +01:00
kobalicek
4e308cce39 Fixed typo in callCpuId when compiled by VS2003. 2015-01-11 20:47:10 +01:00
kobalicek
a67e8fc694 Minor refactor of constants (don't use k prefix in enum type, only values), fixed some compilation problems with VS2003. 2015-01-11 20:44:41 +01:00
Petr Kobalicek
f8a1de724a Merge pull request #66 from Zeex/logformat-fix
Fix invalid buffer length in logFormat()
2015-01-09 01:08:32 +01:00
Zeex
4de6a1d81e Fix invalid buffer length in logFormat()
When the buffer passed to vsnprintf() is too small it actually returns
length of the string, not how many characters have been written to the
buffer (which is limited by the buffer size).

So bound len by sizeof(buf) - 1 in logFormat().
2015-01-07 19:33:27 +06:00
Petr Kobalicek
48da90ded7 Merge pull request #63 from kirbyfan64/master
Fix Clang warning about -f-inline-functions
2014-12-01 21:54:41 +01:00
Ryan Gonzalez
ee1cf60114 Fix Clang warning about -f-inline-functions 2014-11-30 14:28:57 -06:00
kobalicek
e8cd5b9924 Fixed issue #62 2014-11-29 22:08:31 +01:00
kobalicek
c4c2eb52ba Minor 2014-11-29 22:08:04 +01:00
kobalicek
f95a065ee2 Fixed some minor issues reported by clang 2014-11-17 00:28:56 +01:00
kobalicek
06f1dbb32d Fixed a bug caused by refactoring and improper testing (32-bit build affected only). 2014-11-09 15:43:35 +01:00
kobalicek
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).
2014-11-01 13:07:56 +01:00
kobalicek
1318c9aff7 Fixed warning related to disabledTrace(). 2014-09-29 23:09:08 +02:00
kobalicek
fd0972d9c6 Emit/Log instruction with immediate properly if memory operand has been used with Label. 2014-09-29 20:29:30 +02:00
kobalicek
80687fc47a Added kX86Cmp enum. 2014-09-29 02:52:38 +02:00
kobalicek
2c750024db Fixed ConstPool traversing bug. 2014-09-26 01:13:19 +02:00
kobalicek
0cff228354 Fixed CMakeLists.txt (again). 2014-09-22 20:06:43 +02:00
kobalicek
d9f5a525e5 Fixed cmake crashing after secondary run. 2014-09-21 21:12:45 +02:00
Petr Kobalicek
04c58c6fa2 Merge pull request #55 from kobalicek/issue_53
Fixed Issue #53
2014-09-21 20:48:24 +02:00
kobalicek
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.
2014-09-21 20:41:30 +02:00
kobalicek
5185b555fe ASMJIT_OFFSET_OF should cast to int 2014-09-20 00:29:46 +02:00
kobalicek
6ca44dfb7a Fixed #52 2014-09-20 00:29:04 +02:00
kobalicek
eef8f78953 Removed contribs
Added some misc methods to Compiler.
Moved reset() from X86Var to Var.
2014-09-17 20:31:53 +02:00
kobalicek
66a863c004 Always function argument varType to architecture specific one (Fixed #49), test-case included. 2014-09-15 23:48:55 +02:00
kobalicek
cf3b6ccb5b Fixed structure alignment linker warning (MSVC) related to Operand. 2014-09-15 09:12:19 +02:00
kobalicek
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.
2014-09-08 20:24:31 +02:00
Petr Kobalicek
d7fc62d9e9 Merge pull request #45 from xantares/mingw
CMake improvements.
2014-07-21 20:15:00 +02:00
xantares
2475e3f80a Install dll in <prefix>/bin 2014-07-17 07:13:29 +00:00
xantares
f82fd80305 Install if not ASMJIT_EMBED 2014-07-17 07:11:51 +00:00
kobalicek
104e857b6c README update. 2014-07-17 00:46:01 +02:00
kobalicek
895d33d465 Documentation fixes. 2014-07-15 21:31:23 +02:00
Petr Kobalicek
3363e4138b Merge pull request #42 from kobalicek/incremental
Incremental work with some incompatible changes - denested asmjit
2014-07-12 22:03:22 +02:00
kobalicek
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).
2014-07-12 17:50:35 +02:00
kobalicek
a66efd5460 Minor 2014-06-07 21:57:07 +02:00
kobalicek
0dbd42f350 Line endings 2014-06-07 19:23:35 +02:00
kobalicek
c87814b225 Added librt dependency on Linux by default. 2014-06-06 22:18:51 +02:00
kobalicek
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).
2014-06-06 22:05:52 +02:00
kobalicek
95e9fe41d2 Reworked _InterlockedCompareExchange a bit more... 2014-06-06 12:32:45 +02:00
kobalicek
eb1a71f58a Added missing pragma for _InterlockedCompareExchange 2014-06-06 12:24:11 +02:00
kobalicek
e5387eaaca Fixed #35 (namespace x86x64 in x86regs.h not included). 2014-06-06 10:41:43 +02:00