2
0
mirror of https://github.com/rehlds/rehlds.git synced 2024-12-29 08:05:50 +03:00
This commit is contained in:
asmodai 2016-01-19 19:37:13 +03:00
parent 57bcc12469
commit 91a46f5e97

View File

@ -1443,6 +1443,9 @@ namespace compiler {
} }
/// jitasm frontend /// jitasm frontend
#ifndef _WIN32
#pragma inline-max-per-routine(0)
#endif
struct Frontend struct Frontend
{ {
typedef jitasm::Addr Addr; typedef jitasm::Addr Addr;
@ -1726,11 +1729,17 @@ struct Frontend
return codebuff_.GetCodeSize(); return codebuff_.GetCodeSize();
} }
void AppendInstr(InstrID id, uint32 opcode, uint32 encoding_flag, const detail::Opd& opd1 = detail::Opd(), const detail::Opd& opd2 = detail::Opd(), const detail::Opd& opd3 = detail::Opd(), const detail::Opd& opd4 = detail::Opd(), const detail::Opd& opd5 = detail::Opd(), const detail::Opd& opd6 = detail::Opd()) void _AppendInstr(InstrID id, uint32 opcode, uint32 encoding_flag, const detail::Opd& opd1, const detail::Opd& opd2, const detail::Opd& opd3, const detail::Opd& opd4, const detail::Opd& opd5, const detail::Opd& opd6)
{ {
instrs_.push_back(Instr(id, opcode, encoding_flag, opd1, opd2, opd3, opd4, opd5, opd6)); instrs_.push_back(Instr(id, opcode, encoding_flag, opd1, opd2, opd3, opd4, opd5, opd6));
} }
void AppendInstr(InstrID id, uint32 opcode, uint32 encoding_flag, const detail::Opd& opd1 = detail::Opd(), const detail::Opd& opd2 = detail::Opd(), const detail::Opd& opd3 = detail::Opd(), const detail::Opd& opd4 = detail::Opd(), const detail::Opd& opd5 = detail::Opd(), const detail::Opd& opd6 = detail::Opd())
{
#pragma noinline
_AppendInstr(id, opcode, encoding_flag, opd1, opd2, opd3, opd4, opd5, opd6);
}
void AppendJmp(size_t label_id) void AppendJmp(size_t label_id)
{ {
AppendInstr(I_JMP, 0, E_SPECIAL, Imm64(label_id)); AppendInstr(I_JMP, 0, E_SPECIAL, Imm64(label_id));