Commit Graph

77 Commits

Author SHA1 Message Date
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 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 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 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
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 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
kobalicekp 190d1c1692 Fixed Issue #16. 2014-04-22 00:12:15 +02:00
kobalicekp 0af60d6eb4 Added proof-of-concept constant pool implementation.
Fixed bug when c.alloc() is called with a specific register.
2014-04-21 03:30:05 +02:00
kobalicekp eaba64c306 Fixed logger bug when showing embed data. 2014-04-21 02:51:19 +02:00
kobalicekp 316812daf0 Fixes bug #20 2014-04-17 22:03:10 +02:00
kobalicekp 6c50029aa0 Fixed bug in pshufb instruction definition (first reported in Issue #17). 2014-04-16 21:33:50 +02:00
Johannes Blume e1aa4741cc Fix incorrect displacement with bound labels for X64 2014-04-16 10:20:47 +02:00
William Kent 3acf89eba7 Fix typo 2014-04-07 20:41:10 -04:00
kobalicekp 01998d4dee Assembler - Fixed bug when generating LEA having absolute address. 2014-04-08 01:48:44 +02:00
kobalicekp 5ac69447dc Fixed Issue #14. 2014-04-03 22:17:41 +02:00
kobalicekp 324df8d6cb Fixed Issue #13. 2014-04-03 22:05:47 +02:00
Kristoffer Grönlund 910a30cd1c Fix trailing tokens on #endif 2014-04-02 10:39:21 +02:00
kobalicekp b4ba6ba2a1 Fixed asmjit bench to use new CpuTicks. 2014-04-01 21:27:06 +02:00
kobalicekp fa528f4741 Added gcc visibility push/pop to ApiBegin/ApiEnd.
ApiBegin/ApiEnd moved from asmjit/base to asmjit.
2014-04-01 21:16:31 +02:00