s/Call/CPPCall/

A precursor to moving the Transl namespace to JIT. We have an IR opcode `Call` and this would conflict. Those should probably be in another namespace, but this is easier.

This was way easier to do in a compiled language :)
Esse commit está contido em:
Paul Tarjan
2013-06-07 15:05:46 -07:00
commit de sgolemon
commit 1c50cae763
4 arquivos alterados com 34 adições e 31 exclusões
+10 -8
Ver Arquivo
@@ -1069,7 +1069,7 @@ void CodeGenerator::cgCallHelper(Asm& a,
dstReg0 = info.reg(0);
dstReg1 = info.reg(1);
}
return cgCallHelper(a, Transl::Call(addr), dstReg0, dstReg1, sync, args,
return cgCallHelper(a, Transl::CppCall(addr), dstReg0, dstReg1, sync, args,
destType);
}
@@ -1079,11 +1079,12 @@ void CodeGenerator::cgCallHelper(Asm& a,
SyncOptions sync,
ArgGroup& args,
DestType destType) {
cgCallHelper(a, Transl::Call(addr), dstReg, InvalidReg, sync, args, destType);
cgCallHelper(a, Transl::CppCall(addr), dstReg, InvalidReg, sync, args,
destType);
}
void CodeGenerator::cgCallHelper(Asm& a,
const Transl::Call& call,
const Transl::CppCall& call,
PhysReg dstReg,
SyncOptions sync,
ArgGroup& args,
@@ -1092,7 +1093,7 @@ void CodeGenerator::cgCallHelper(Asm& a,
}
void CodeGenerator::cgCallHelper(Asm& a,
const Transl::Call& call,
const Transl::CppCall& call,
PhysReg dstReg0,
PhysReg dstReg1,
SyncOptions sync,
@@ -1103,7 +1104,7 @@ void CodeGenerator::cgCallHelper(Asm& a,
}
void CodeGenerator::cgCallHelper(Asm& a,
const Transl::Call& call,
const Transl::CppCall& call,
PhysReg dstReg0,
PhysReg dstReg1,
SyncOptions sync,
@@ -3633,7 +3634,7 @@ void CodeGenerator::cgCallBuiltin(IRInstruction* inst) {
// if the return value is returned by reference, we don't need the
// return value from this call since we know where the value is.
cgCallHelper(m_as, Transl::Call((TCA)func->nativeFuncPtr()),
cgCallHelper(m_as, Transl::CppCall((TCA)func->nativeFuncPtr()),
isCppByRef(funcReturnType) ? InvalidReg : dstReg,
kSyncPoint, callArgs);
@@ -4259,7 +4260,8 @@ void CodeGenerator::cgGuardRefs(IRInstruction* inst) {
auto bitsValReg = m_rScratch;
// Load the bit values in bitValReg:
// bitsValReg <- [bitsValPtr + (firstBitNum / 64)]
m_as.load_reg64_disp_reg64(bitsPtrReg, sizeof(uint64_t) * (firstBitNum / 64),
m_as.load_reg64_disp_reg64(bitsPtrReg,
sizeof(uint64_t) * (firstBitNum / 64),
bitsValReg);
// bitsValReg <- bitsValReg & mask64
m_as.and_reg64_reg64(mask64Reg, bitsValReg);
@@ -4480,7 +4482,7 @@ void CodeGenerator::cgLdClsMethodFCache(IRInstruction* inst) {
StaticMethodFCache::lookupIR;
// preserve destCtxReg across the call since it wouldn't be otherwise
RegSet toSave = m_state.liveRegs[inst] | RegSet(destCtxReg);
cgCallHelper(a, Transl::Call((TCA)lookup),
cgCallHelper(a, Transl::CppCall((TCA)lookup),
funcDestReg, InvalidReg,
kSyncPoint,
ArgGroup(m_regs).imm(ch)
+3 -3
Ver Arquivo
@@ -174,20 +174,20 @@ private:
ArgGroup& args,
DestType destType = DestType::SSA);
void cgCallHelper(Asm& a,
const Transl::Call& call,
const Transl::CppCall& call,
PhysReg dstReg,
SyncOptions sync,
ArgGroup& args,
DestType destType = DestType::SSA);
void cgCallHelper(Asm& a,
const Transl::Call& call,
const Transl::CppCall& call,
PhysReg dstReg0,
PhysReg dstReg1,
SyncOptions sync,
ArgGroup& args,
DestType destType = DestType::SSA);
void cgCallHelper(Asm& a,
const Transl::Call& call,
const Transl::CppCall& call,
PhysReg dstReg0,
PhysReg dstReg1,
SyncOptions sync,
+13 -12
Ver Arquivo
@@ -362,7 +362,7 @@ TranslatorX64::emitCall(X64Assembler& a, TCA dest) {
}
void
TranslatorX64::emitCall(X64Assembler& a, Call call) {
TranslatorX64::emitCall(X64Assembler& a, CppCall call) {
if (call.isDirect()) {
return emitCall(a, (TCA)call.getAddress());
}
@@ -507,16 +507,16 @@ emitEagerVMRegSave(X64Assembler& a,
return start;
}
Call TranslatorX64::getDtorCall(DataType type) {
CppCall TranslatorX64::getDtorCall(DataType type) {
switch (type) {
case BitwiseKindOfString:
return Call(getMethodPtr(&StringData::release));
return CppCall(getMethodPtr(&StringData::release));
case KindOfArray:
return Call(getMethodPtr(&ArrayData::release));
return CppCall(getMethodPtr(&ArrayData::release));
case KindOfObject:
return Call(getMethodPtr(&ObjectData::release));
return CppCall(getMethodPtr(&ObjectData::release));
case KindOfRef:
return Call(getMethodPtr(&RefData::release));
return CppCall(getMethodPtr(&RefData::release));
default:
assert(false);
NOT_REACHED();
@@ -3595,10 +3595,11 @@ TranslatorX64::TranslatorX64()
typedef void* vp;
TCA strDtor, arrDtor, objDtor, refDtor;
strDtor = emitUnaryStub(astubs, Call(getMethodPtr(&StringData::release)));
arrDtor = emitUnaryStub(astubs, Call(getVTableOffset(&HphpArray::release)));
objDtor = emitUnaryStub(astubs, Call(getMethodPtr(&ObjectData::release)));
refDtor = emitUnaryStub(astubs, Call(vp(getMethodPtr(&RefData::release))));
strDtor = emitUnaryStub(astubs, CppCall(getMethodPtr(&StringData::release)));
arrDtor = emitUnaryStub(astubs,
CppCall(getVTableOffset(&HphpArray::release)));
objDtor = emitUnaryStub(astubs, CppCall(getMethodPtr(&ObjectData::release)));
refDtor = emitUnaryStub(astubs, CppCall(vp(getMethodPtr(&RefData::release))));
m_dtorStubs[typeToDestrIndex(BitwiseKindOfString)] = strDtor;
m_dtorStubs[typeToDestrIndex(KindOfArray)] = arrDtor;
@@ -3680,7 +3681,7 @@ TranslatorX64::Get() {
}
template<int Arity>
TCA TranslatorX64::emitNAryStub(X64Assembler& a, Call c) {
TCA TranslatorX64::emitNAryStub(X64Assembler& a, CppCall c) {
BOOST_STATIC_ASSERT((Arity < kNumRegisterArgs));
// The callNAryStub has already saved these regs on a.
@@ -3728,7 +3729,7 @@ TCA TranslatorX64::emitNAryStub(X64Assembler& a, Call c) {
return start;
}
TCA TranslatorX64::emitUnaryStub(X64Assembler& a, Call c) {
TCA TranslatorX64::emitUnaryStub(X64Assembler& a, CppCall c) {
return emitNAryStub<1>(a, c);
}
+8 -8
Ver Arquivo
@@ -66,10 +66,10 @@ struct FreeStubList {
void push(TCA stub);
};
struct Call {
explicit Call(void *p) : m_kind(Direct), m_fptr(p) {}
explicit Call(int off) : m_kind(Virtual), m_offset(off) {}
Call(Call const&) = default;
struct CppCall {
explicit CppCall(void *p) : m_kind(Direct), m_fptr(p) {}
explicit CppCall(int off) : m_kind(Virtual), m_offset(off) {}
CppCall(CppCall const&) = default;
bool isDirect() const { return m_kind == Direct; }
bool isVirtual() const { return m_kind == Virtual; }
@@ -221,7 +221,7 @@ private:
void emitIncRef(X64Assembler &a, PhysReg base, DataType dtype);
void emitIncRef(PhysReg base, DataType);
void emitIncRefGenericRegSafe(PhysReg base, int disp, PhysReg tmp);
static Call getDtorCall(DataType type);
static CppCall getDtorCall(DataType type);
void emitCopy(PhysReg srcCell, int disp, PhysReg destCell);
void emitCopyToStackRegSafe(Asm& a,
const NormalizedInstruction& ni,
@@ -233,7 +233,7 @@ private:
public:
void emitCall(Asm& a, TCA dest);
void emitCall(Asm& a, Call call);
void emitCall(Asm& a, CppCall call);
TCA getCallArrayProlog(Func* func);
private:
@@ -249,8 +249,8 @@ private:
void emitObjToClass(const NormalizedInstruction& i);
void emitClsAndPals(const NormalizedInstruction& i);
template<int Arity> TCA emitNAryStub(Asm& a, Call c);
TCA emitUnaryStub(Asm& a, Call c);
template<int Arity> TCA emitNAryStub(Asm& a, CppCall c);
TCA emitUnaryStub(Asm& a, CppCall c);
TCA genericRefCountStub(Asm& a);
TCA genericRefCountStubRegs(Asm& a);
void emitFreeLocalsHelpers();