зеркало из https://github.com/mozilla/gecko-dev.git
Bug 1181612: Rename AsmJSFunctionLabels to make them easier to understand; r=luke
--HG-- extra : commitid : IZMCWrFp9Vl extra : rebase_source : c3395e05dc8fd8ac23e305d6458446f60d36c112
This commit is contained in:
Родитель
b9e217d3b1
Коммит
c0c6e3dedb
|
@ -146,8 +146,8 @@ class ModuleCompiler
|
|||
|
||||
#if defined(MOZ_VTUNE) || defined(JS_ION_PERF)
|
||||
// Perf and profiling information
|
||||
unsigned begin = labels.begin.offset();
|
||||
unsigned end = labels.end.offset();
|
||||
unsigned begin = labels.nonProfilingEntry.offset();
|
||||
unsigned end = labels.endAfterOOL.offset();
|
||||
AsmJSModule::ProfiledFunction profiledFunc(funcName, begin, end, line, column);
|
||||
if (!compileResults_->addProfiledFunction(profiledFunc))
|
||||
return false;
|
||||
|
|
|
@ -280,13 +280,13 @@ js::GenerateAsmJSFunctionPrologue(MacroAssembler& masm, unsigned framePushed,
|
|||
|
||||
masm.haltingAlign(CodeAlignment);
|
||||
|
||||
GenerateProfilingPrologue(masm, framePushed, AsmJSExit::None, &labels->begin);
|
||||
GenerateProfilingPrologue(masm, framePushed, AsmJSExit::None, &labels->profilingEntry);
|
||||
Label body;
|
||||
masm.jump(&body);
|
||||
|
||||
// Generate normal prologue:
|
||||
masm.haltingAlign(CodeAlignment);
|
||||
masm.bind(&labels->entry);
|
||||
masm.bind(&labels->nonProfilingEntry);
|
||||
PushRetAddr(masm);
|
||||
masm.subFromStackPtr(Imm32(framePushed + AsmJSFrameBytesAfterReturnAddress));
|
||||
|
||||
|
|
|
@ -1364,19 +1364,19 @@ AsmJSModule::CodeRange::CodeRange(uint32_t nameIndex, uint32_t lineNumber,
|
|||
const AsmJSFunctionLabels& l)
|
||||
: nameIndex_(nameIndex),
|
||||
lineNumber_(lineNumber),
|
||||
begin_(l.begin.offset()),
|
||||
begin_(l.profilingEntry.offset()),
|
||||
profilingReturn_(l.profilingReturn.offset()),
|
||||
end_(l.end.offset())
|
||||
end_(l.endAfterOOL.offset())
|
||||
{
|
||||
PodZero(&u); // zero padding for Valgrind
|
||||
u.kind_ = Function;
|
||||
setDeltas(l.entry.offset(), l.profilingJump.offset(), l.profilingEpilogue.offset());
|
||||
setDeltas(l.nonProfilingEntry.offset(), l.profilingJump.offset(), l.profilingEpilogue.offset());
|
||||
|
||||
MOZ_ASSERT(l.begin.offset() < l.entry.offset());
|
||||
MOZ_ASSERT(l.entry.offset() < l.profilingJump.offset());
|
||||
MOZ_ASSERT(l.profilingEntry.offset() < l.nonProfilingEntry.offset());
|
||||
MOZ_ASSERT(l.nonProfilingEntry.offset() < l.profilingJump.offset());
|
||||
MOZ_ASSERT(l.profilingJump.offset() < l.profilingEpilogue.offset());
|
||||
MOZ_ASSERT(l.profilingEpilogue.offset() < l.profilingReturn.offset());
|
||||
MOZ_ASSERT(l.profilingReturn.offset() < l.end.offset());
|
||||
MOZ_ASSERT(l.profilingReturn.offset() < l.endAfterOOL.offset());
|
||||
}
|
||||
|
||||
void
|
||||
|
|
|
@ -102,14 +102,14 @@ enum AsmJSSimdOperation
|
|||
struct MOZ_STACK_CLASS AsmJSFunctionLabels
|
||||
{
|
||||
AsmJSFunctionLabels(jit::Label& entry, jit::Label& overflowExit)
|
||||
: entry(entry), overflowExit(overflowExit) {}
|
||||
: nonProfilingEntry(entry), overflowExit(overflowExit) {}
|
||||
|
||||
jit::Label begin;
|
||||
jit::Label& entry;
|
||||
jit::Label profilingJump;
|
||||
jit::Label profilingEpilogue;
|
||||
jit::Label profilingReturn;
|
||||
jit::Label end;
|
||||
jit::Label profilingEntry;
|
||||
jit::Label& nonProfilingEntry;
|
||||
jit::Label profilingJump;
|
||||
jit::Label profilingEpilogue;
|
||||
jit::Label profilingReturn;
|
||||
jit::Label endAfterOOL;
|
||||
mozilla::Maybe<jit::Label> overflowThunk;
|
||||
jit::Label& overflowExit;
|
||||
};
|
||||
|
|
|
@ -1520,6 +1520,7 @@ class MOZ_STACK_CLASS ModuleValidator
|
|||
if (!module().addFunctionCounts(compileResults_->functionCount(i)))
|
||||
return false;
|
||||
}
|
||||
|
||||
#if defined(MOZ_VTUNE) || defined(JS_ION_PERF)
|
||||
for (size_t i = 0; i < compileResults_->numProfiledFunctions(); ++i) {
|
||||
if (!module().addProfiledFunction(Move(compileResults_->profiledFunction(i))))
|
||||
|
@ -1527,7 +1528,7 @@ class MOZ_STACK_CLASS ModuleValidator
|
|||
}
|
||||
#endif // defined(MOZ_VTUNE) || defined(JS_ION_PERF)
|
||||
|
||||
// Hand in code ranges, script counts and perf profiling data to the AsmJSModule
|
||||
// Hand in code ranges to the AsmJSModule
|
||||
for (size_t i = 0; i < compileResults_->numCodeRanges(); ++i) {
|
||||
AsmJSModule::FunctionCodeRange& codeRange = compileResults_->codeRange(i);
|
||||
if (!module().addFunctionCodeRange(codeRange.name(), Move(codeRange)))
|
||||
|
|
|
@ -7800,7 +7800,7 @@ CodeGenerator::generateAsmJS(AsmJSFunctionLabels* labels)
|
|||
if (!generateOutOfLineCode())
|
||||
return false;
|
||||
|
||||
masm.bind(&labels->end);
|
||||
masm.bind(&labels->endAfterOOL);
|
||||
|
||||
// The only remaining work needed to compile this function is to patch the
|
||||
// switch-statement jump tables (the entries of the table need the absolute
|
||||
|
|
Загрузка…
Ссылка в новой задаче