Commit Graph

102 Commits

Author SHA1 Message Date
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
kobalicek
c64931abdb Removed junk x86/x86defs.h (#36) 2014-06-06 10:34:19 +02:00
kobalicek
5679a1fefd Added Travis 2014-06-05 19:40:33 +02:00
kobalicek
24c7d5afbd Minor. 2014-06-05 11:09:28 +02:00
kobalicek
df618fa24d Added back interface to override default functions for memory allocation (ASMJIT_ALLOC, ASMJIT_REALLOC, ASMJIT_FREE). 2014-06-05 11:02:38 +02:00
kobalicek
db322d5dc1 Added minimalist unit testing (and removed some apps that did some tests). 2014-06-04 22:12:52 +02:00
kobalicek
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).
2014-05-30 17:02:03 +02:00
kobalicek
f77a04ba04 Doc update. 2014-05-30 14:59:07 +02:00
kobalicek
cc2909f0db Minor changes.
Added possibility to get x86/x64 instruction id by name.
2014-05-30 14:49:22 +02:00
kobalicek
5869dc4736 Reworked Zone memory allocator a bit. 2014-05-29 14:25:40 +02:00
kobalicek
6def28a509 Renamed conflicting calloc to allocZeroed. 2014-05-27 23:16:37 +02:00
kobalicek
1fdcf250d2 Split registers from x86operand so they don't have to use static initialization. 2014-05-27 23:08:27 +02:00
kobalicek
e978cda1c0 Minor. 2014-05-27 22:30:58 +02:00
kobalicek
c2257adcc4 Added base defs in Compiler that will be used for AVX code. 2014-05-27 22:30:48 +02:00
kobalicek
811e1c3a96 Removed sentinel from const-pool binary tree (NULL is used instead). 2014-05-27 22:30:29 +02:00
kobalicek
98ed103929 Reworked imm specialization a bit more (Assembler/Compiler) (Issue #34). 2014-05-26 22:14:33 +02:00
kobalicek
c6f12c2720 Reworked trampolines (64-bit), results in space saving and patchable jmp/call (Issue #33).
Added int64_t overload to prevent truncation of immediates passed to Assembler/Compiler (Issue #34).
2014-05-26 21:26:45 +02:00
kobalicek
05850cb6cb Minor. 2014-05-26 11:06:18 +02:00
kobalicek
f112305d54 Fixed bug introduced by commit 1a73e65534 2014-05-23 00:06:10 +02:00
kobalicek
1cb47ce497 Fixed repo name. 2014-05-15 21:34:02 +02:00
kobalicek
1a73e65534 - Minor reorganization of source code (split defs to operand and instruction info).
- Added JECXZ instruction.
- Doxyfile is now in project root.
- Documentation updates.
2014-05-10 21:19:50 +02:00
Petr Kobalicek
bd1a5facb8 Merge pull request #31 from bnoordhuis/fix-compiler-warning
Fix unused parameter warning by fixing function prototype.
2014-05-08 16:26:06 +02:00
Ben Noordhuis
7398dd0055 Fix unused parameter warning.
Remove the unused `disp` argument from Mem::resetDisplacement().
Fixes the following harmless compiler warning:

    src/asmjit/x86/../x86/x86defs.h:3106:22: warning:
    unused parameter 'disp' [-Wunused-parameter]
       ASMJIT_INLINE Mem& resetDisplacement(int32_t disp) {
2014-05-08 16:21:26 +02:00
kobalicekp
7424739c41 Fixed maskmovq and maskmovdqu instructions (Compiler). 2014-05-04 23:23:30 +02:00
kobalicekp
f1ce2383ba - Major documentation reorganization of AsmJit (still far from perfection)
- Documentation - removed verbose @brief and switched to markdown syntax which Doxygen supports.
- Added inline documentation to AVX/AVX2 instructions.
- Added more documentation notes to utility classes.
- Modified documentation groups to be compatible with the new code layout (base/x86).

- Renamed VirtualMemoryManager to VMemMgr.
- Removed MemoryManager interface (not needed).
- Changed JitRuntime to always create a new isolated VMemMgr instance.
- Fixed WinRemoteRuntime to work with the new changes.

- Added missing insertps instruction to database, assembler and compiler.
- Moved global functions in x86cpuinfo to CpuUtil class.

- Should notify Issue #10
2014-05-04 23:11:12 +02:00
kobalicekp
bceaebdbe3 Added support for missing AMD instruction sets (FMA4 and XOP) to Assembler. 2014-05-03 18:04:16 +02:00
kobalicekp
00f9e5fe50 64-bit GP register/variable is now forbidden in 32-bit mode. (Issue #26). 2014-05-03 10:59:52 +02:00
kobalicekp
2f5fccbf3f Minor - Put assembler/compiler options to a macro.
Dummy - cleanup.
2014-05-03 10:50:04 +02:00
kobalicekp
80730c541a Sanitized source files (spaces / end line marks). 2014-05-03 00:57:16 +02:00
kobalicekp
98b4880141 Fixed Issue #24
Added move information to instruction database that the Compiler can use to make the read/write information of each operand more precise.
2014-05-03 00:55:43 +02:00
kobalicekp
ca1726b0e0 Fixed Issue #25. 2014-04-28 11:11:00 +02:00
kobalicekp
c1d4dd1f63 Minor readme changes. 2014-04-28 11:10:42 +02:00
kobalicekp
b76922fde9 Added basic documentation to README.md. 2014-04-24 02:16:45 +02:00
kobalicekp
70bd453721 Renamed const pool functions to be more descriptive and have less collisions. 2014-04-24 02:13:51 +02:00
kobalicekp
99f50915ec Cosmetic. 2014-04-23 01:02:25 +02:00
kobalicekp
e7e9825065 Added ASMJIT_EMBED support to build.h. 2014-04-23 01:01:56 +02:00
kobalicekp
7869d4e39f Fixed Issue #22 2014-04-22 21:57:17 +02:00