XmmVar X86Compiler::newXmmVar(uint32_t varType, const char* name) { ASMJIT_ASSERT((varType < kX86VarTypeCount) && (x86VarInfo[varType].getClass() & kX86VarClassXmm) != 0); X86CompilerVar* var = _newVar(name, varType, 16); return var->asXmmVar(); }
Error X86Compiler::_newVar(Var* var, uint32_t vType, const char* fmt, va_list ap) noexcept { char name[64]; vsnprintf(name, ASMJIT_ARRAY_SIZE(name), fmt, ap); name[ASMJIT_ARRAY_SIZE(name) - 1] = '\0'; return _newVar(var, vType, name); }
GpVar X86Compiler::newGpVar(uint32_t varType, const char* name) { ASMJIT_ASSERT((varType < kX86VarTypeCount) && (x86VarInfo[varType].getClass() & kX86VarClassGp) != 0); #if defined(ASMJIT_X86) if (x86VarInfo[varType].getSize() > 4) { varType = kX86VarTypeGpd; if (_logger) _logger->logString("*** COMPILER WARNING: QWORD variable translated to DWORD, FIX YOUR CODE! ***\n"); } #endif // ASMJIT_X86 X86CompilerVar* var = _newVar(name, varType, x86VarInfo[varType].getSize()); return var->asGpVar(); }