Commit Graph

245 Commits

Author SHA1 Message Date
kobalicek 528951ab9a Minor, catch VSIB{rip+xxx} in x86 validator as well 2017-03-06 18:54:52 +01:00
kobalicek 35ba2ad83a Minor changes to cmake files 2017-03-04 20:37:42 +01:00
Víctor M. González 951c62e330 Named labels are printed with their name, instead of L#. (#160) 2017-03-04 17:02:31 +01:00
kobalicek df7423d596 Fill sourceSectionId of reloc info properly 2017-02-27 20:25:37 +01:00
kobalicek 90c26db709 Added more memory addressing types to Mem operand 2017-02-27 17:12:28 +01:00
kobalicek a808b44359 Minor logging changes 2017-02-26 12:33:05 +01:00
kobalicek 4a94223ebd Added new instructions + xacquire|xrelease prefixes, reorganized instruction options 2017-02-26 12:19:49 +01:00
kobalicek f589e7165a Fixed encoding of 'CRC32 r64, r8/m8' instruction
Fixed encoding of 'POPCNT|TZCNT|LZCNT r16, r16/m16' instruction
Fixed encoding of EVEX instructions that don't provide VEX prefix equivalent
Added 'LOCK MOV CR8' extension used by AMD processors in 32-bit mode and 'ALTMOVCR8' CPU feature
Renamed some CPU features to respect their names used in X86/X64 architecture manuals
Added validation of immediate operands (correct size, correct sign/zero extension)
Added validation of explicit/implicit size of memory operands
Added validation of LOCK/REP/REPNZ prefixes to x86 validator
Reorganized some X86 instruction tables, removed family specific tables, introduced OperationData
Improved instruction tables generator to automatically generate instruction flags
Regenerated all instruction tables to respect the current state of 'asmdb.x86data'
2017-02-25 19:36:28 +01:00
kobalicek aa154e3590 Added more instructions (System, MPX, AVX512_VPOPCNTDQ, AVX512_4FMAPS, AVX512_4VNNIW) 2017-02-21 01:55:07 +01:00
kobalicek bb8b6d9fa2 Mark _globalOptions as well as _lastError in CodeEmitter::setLastError() 2017-02-20 08:56:38 +01:00
kobalicek 2416e428a3 Get rid off some strict aliasing warnings. 2017-02-19 19:41:10 +01:00
kobalicek 1e47f7999c Fixed some warnings 2017-02-19 19:36:36 +01:00
kobalicek 9ceb071c4a Minor improvements 2017-02-19 18:42:44 +01:00
kobalicek c8c16f3366 [bug] Fixed encoding of vmovd and vmovq instructions 2017-02-16 02:31:42 +01:00
kobalicek 8c86004d7f Minor Compiler fixes especially related to AVX 2017-02-15 17:22:16 +01:00
kobalicek 8062e7d433 Dump an instruction signature on error, corrected x86 validator a bit, adjusted DB according to asmdb changes 2017-02-14 18:40:31 +01:00
kobalicek 216fb5a281 Added FastEval calling convention - AsmJit specific/experimental feature 2017-02-11 02:34:09 +01:00
kobalicek 43dbe48afc Added CodeCompiler::newSimilarReg, merged generate-xxx tools from next-wip branch, changed pcmpgtq to be in SSE4.2 group 2017-02-09 14:15:08 +01:00
Philipp Paulweber a984b508fc Clean-up (#153)
Clean-up (ctor init order, unused variables, misc)
2017-02-09 13:48:20 +01:00
kobalicek 814cf62a85 Added validation of absolute memory address to the validator 2017-02-03 17:50:51 +01:00
kobalicek 13a5105fe0 Moved some hardcoded positions in tabled into template-based approach 2017-02-03 17:44:58 +01:00
kobalicek ff2bf109fc Minor improvements of CodeCompiler 2017-02-02 15:14:07 +01:00
kobalicek ef44e5a2f9 Fixed initialization of CodeHolder 2017-02-02 03:17:38 +01:00
kobalicek fa43c7be07 Make asmjit compile with all possible ASMJIT_DISABLE_... options 2017-02-02 00:48:05 +01:00
kobalicek 0943382a0c Minor changes, fixed a very rare X86Compiler bug in liveness analysis 2017-02-02 00:37:10 +01:00
Michał Janiszewski dc0ccfd74c Fix compilation with ICC (17.0.1) (#150) 2017-01-26 21:36:10 +01:00
Petr Kobalicek b7f6d1e369 Merged asmjit:next branch (#149) 2017-01-26 15:55:03 +01:00
svost fb9f82cb61 Typo fix (Issue #143) 2016-11-11 19:34:49 +01:00
Wenzel Jakob f900a92e13 [BUG] Fix avx512 detection (#136) 2016-09-17 15:25:08 +02:00
kobalicek a7d3c757e4 Updated README to inform about the next branch 2016-09-13 00:53:15 +02:00
kobalicek 6467c73ddf [BUG] Fixed a macro expansion from wordptr to word_ptr (only rip addressing affected) 2016-07-10 05:30:56 +02:00
kobalicek c908c3db8d Added ADX, TBM, CLFLUSH_OPT, PREFETCHW, and SHA instruction sets to Assembler and Compiler\nAdded initial support for AVX/AVX2 instructions into X86Compiler\nRenamed oword to dqword (intel convention)\nFixed incorrect XOP and FMA4 detection\nCosmetic changes in documentation\nFixed unused typedef warnings (clang) (related to #132) 2016-07-03 23:05:43 +02:00
kobalicek 6f6ca70c4c Fixed BMI and BMI2 (finally). 2016-06-30 19:44:12 +02:00
kobalicek 5db35108d0 Fixed MSVC compilation issues. 2016-06-30 19:16:43 +02:00
kobalicek d25f392c6e Minor code cleanup, fixed 64-bit BMI and BMI2 instructions 2016-06-30 18:59:59 +02:00
kobalicek 286bc22f49 Better compiler flags detection in CMakeLists.txt\nFixed missing noexcept in StaticRuntime.cpp 2016-05-05 04:08:23 +02:00
kobalicek f7de7b8d35 Added a test-case to verify stack allocation, attempt to fix #128 2016-04-16 16:35:58 +02:00
kobalicek 9fc1dbfdcd Moved calling conventions to globals.h
Fixed #128
2016-04-16 14:50:17 +02:00
kobalicek f7ddd38777 Trying to trigger #126 2016-04-09 13:51:48 +02:00
kobalicek 83682451b8 Mark clobbered registers when allocating "call" (X86Compiler) 2016-04-09 04:55:00 +02:00
James Laver 02ba5cc35c renamed bswap32 to byteswap32 to avoid conflict with builtin freebsd macro 2016-04-03 16:14:04 +02:00
kobalicek 446a5f1cb1 Improved asmjit trace - pretty print nodes being removed 2016-03-29 04:57:56 +02:00
kobalicek 6ef5878eca Minor compiler update - unreachable code remover will not remove labels. 2016-03-29 01:01:28 +02:00
kobalicek 95aacf9fd1 Moved addFunc() from X86Compiler to Compiler.
Fixed CompilerContext not being reset after the first function is translated.
2016-03-28 23:18:41 +02:00
kobalicek 7b0e362ac6 Added ASMJIT_TRACE support to CMakeLists.txt 2016-03-28 22:33:32 +02:00
kobalicek 4a654c2c49 Fixed bug in PodVectorTmp<> implementation and added a test-case for it. 2016-03-28 02:03:25 +02:00
kobalicek b81004bc99 [Bug] Fixed a bug in X86Compiler::getIntPtr() not promoting intptr to int32/int64.
Minor changes.
2016-03-24 03:26:41 +01:00
kobalicek 185a96a46a Reworked CpuInfo (removed X86CpuInfo, added ARM CpuInfo support).
Renamed CodeGen to ExternalTool.
Moved logger constants from asmjit namespace to asmjit::Logger.
Moved AssemblerFeature constants from asmjit namespace to asmjit::Assembler.
Added noexcept to most APIs that are not intended to throw.
Added memory utilities that can read/write to unaligned memory location (ongoing ARM support).
Removed unimplemented instruction scheduler, will be added back when it's working.
2016-03-21 21:41:55 +01:00
kobalicek a5cdf0b44b Updated x86inst. 2016-03-10 18:04:19 +01:00
kobalicek d7317987bf Added a link to chat-room to README.md. 2016-03-10 18:01:38 +01:00