Commit Graph

9 Commits

Author SHA1 Message Date
kobalicek 6ca44dfb7a Fixed #52 2014-09-20 00:29:04 +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
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 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
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 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
kobalicekp 45522aa097 Added -FPIC parameter when building a static library.
Added CpuTicks to asmjit to make benchmarking easier.
Renamed Cpu to CpuInfo.
Minor documentation updates.
2014-04-01 11:11:07 +02:00
kobalicekp 8d2b18ccb0 Minor changes.
Fixed bug when using label as a memory operand.
2014-02-23 23:04:09 +01:00
kobalicekp 5c7123fbb3 Initial. 2014-02-02 03:17:30 +01:00