mirror of
https://github.com/xenia-project/xenia.git
synced 2025-12-06 07:12:03 +01:00
Move GetTempReg higher in the source file, before its first usage.
This commit is contained in:
parent
ff7c755bc9
commit
542f5ba8e5
|
|
@ -411,6 +411,25 @@ struct I<OPCODE, DEST, SRC1, SRC2, SRC3> : DestField<DEST> {
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
template <typename T>
|
||||||
|
const T GetTempReg(X64Emitter& e);
|
||||||
|
template <>
|
||||||
|
const Reg8 GetTempReg<Reg8>(X64Emitter& e) {
|
||||||
|
return e.al;
|
||||||
|
}
|
||||||
|
template <>
|
||||||
|
const Reg16 GetTempReg<Reg16>(X64Emitter& e) {
|
||||||
|
return e.ax;
|
||||||
|
}
|
||||||
|
template <>
|
||||||
|
const Reg32 GetTempReg<Reg32>(X64Emitter& e) {
|
||||||
|
return e.eax;
|
||||||
|
}
|
||||||
|
template <>
|
||||||
|
const Reg64 GetTempReg<Reg64>(X64Emitter& e) {
|
||||||
|
return e.rax;
|
||||||
|
}
|
||||||
|
|
||||||
template <typename SEQ, typename T>
|
template <typename SEQ, typename T>
|
||||||
struct Sequence {
|
struct Sequence {
|
||||||
typedef T EmitArgType;
|
typedef T EmitArgType;
|
||||||
|
|
@ -629,25 +648,6 @@ struct Sequence {
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
template <typename T>
|
|
||||||
const T GetTempReg(X64Emitter& e);
|
|
||||||
template <>
|
|
||||||
const Reg8 GetTempReg<Reg8>(X64Emitter& e) {
|
|
||||||
return e.al;
|
|
||||||
}
|
|
||||||
template <>
|
|
||||||
const Reg16 GetTempReg<Reg16>(X64Emitter& e) {
|
|
||||||
return e.ax;
|
|
||||||
}
|
|
||||||
template <>
|
|
||||||
const Reg32 GetTempReg<Reg32>(X64Emitter& e) {
|
|
||||||
return e.eax;
|
|
||||||
}
|
|
||||||
template <>
|
|
||||||
const Reg64 GetTempReg<Reg64>(X64Emitter& e) {
|
|
||||||
return e.rax;
|
|
||||||
}
|
|
||||||
|
|
||||||
template <typename T>
|
template <typename T>
|
||||||
void Register() {
|
void Register() {
|
||||||
sequence_table.insert({T::head_key(), T::Select});
|
sequence_table.insert({T::head_key(), T::Select});
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue