Diff
Modified: trunk/Source/_javascript_Core/ChangeLog (224549 => 224550)
--- trunk/Source/_javascript_Core/ChangeLog 2017-11-07 22:38:34 UTC (rev 224549)
+++ trunk/Source/_javascript_Core/ChangeLog 2017-11-07 22:52:34 UTC (rev 224550)
@@ -1,5 +1,40 @@
2017-11-07 Mark Lam <mark....@apple.com>
+ Introduce a default RegisterSet constructor so that we can use { } notation.
+ https://bugs.webkit.org/show_bug.cgi?id=179389
+
+ Reviewed by Saam Barati.
+
+ I also replaced uses of "RegisterSet()" with "{ }" where the use of "RegisterSet()"
+ does not add any code documentation value.
+
+ * b3/air/AirAllocateRegistersAndStackByLinearScan.cpp:
+ * b3/air/AirCode.cpp:
+ (JSC::B3::Air::Code::setRegsInPriorityOrder):
+ * b3/air/AirPrintSpecial.cpp:
+ (JSC::B3::Air::PrintSpecial::extraEarlyClobberedRegs):
+ (JSC::B3::Air::PrintSpecial::extraClobberedRegs):
+ * b3/air/testair.cpp:
+ * bytecode/PolymorphicAccess.h:
+ (JSC::AccessGenerationState::preserveLiveRegistersToStackForCall):
+ (JSC::AccessGenerationState::restoreLiveRegistersFromStackForCall):
+ * dfg/DFGJITCode.cpp:
+ (JSC::DFG::JITCode::liveRegistersToPreserveAtExceptionHandlingCallSite):
+ * ftl/FTLJITCode.cpp:
+ (JSC::FTL::JITCode::liveRegistersToPreserveAtExceptionHandlingCallSite):
+ * jit/JITCode.cpp:
+ (JSC::JITCode::liveRegistersToPreserveAtExceptionHandlingCallSite):
+ * jit/RegisterSet.cpp:
+ (JSC::RegisterSet::reservedHardwareRegisters):
+ (JSC::RegisterSet::runtimeRegisters):
+ (JSC::RegisterSet::macroScratchRegisters):
+ * jit/RegisterSet.h:
+ (JSC::RegisterSet::RegisterSet):
+ * wasm/WasmB3IRGenerator.cpp:
+ (JSC::Wasm::B3IRGenerator::emitTierUpCheck):
+
+2017-11-07 Mark Lam <mark....@apple.com>
+
AccessCase::generateImpl() should exclude the result register when restoring registers after a call.
https://bugs.webkit.org/show_bug.cgi?id=179355
<rdar://problem/35263053>
Modified: trunk/Source/_javascript_Core/b3/air/AirAllocateRegistersAndStackByLinearScan.cpp (224549 => 224550)
--- trunk/Source/_javascript_Core/b3/air/AirAllocateRegistersAndStackByLinearScan.cpp 2017-11-07 22:38:34 UTC (rev 224549)
+++ trunk/Source/_javascript_Core/b3/air/AirAllocateRegistersAndStackByLinearScan.cpp 2017-11-07 22:52:34 UTC (rev 224550)
@@ -371,7 +371,7 @@
// http://dl.acm.org/citation.cfm?id=330250.
m_active.clear();
- m_activeRegs = RegisterSet();
+ m_activeRegs = { };
size_t clobberIndex = 0;
for (Tmp& tmp : m_tmps) {
Modified: trunk/Source/_javascript_Core/b3/air/AirCode.cpp (224549 => 224550)
--- trunk/Source/_javascript_Core/b3/air/AirCode.cpp 2017-11-07 22:38:34 UTC (rev 224549)
+++ trunk/Source/_javascript_Core/b3/air/AirCode.cpp 2017-11-07 22:52:34 UTC (rev 224550)
@@ -89,7 +89,7 @@
void Code::setRegsInPriorityOrder(Bank bank, const Vector<Reg>& regs)
{
regsInPriorityOrderImpl(bank) = regs;
- m_mutableRegs = RegisterSet();
+ m_mutableRegs = { };
forEachBank(
[&] (Bank bank) {
for (Reg reg : regsInPriorityOrder(bank))
Modified: trunk/Source/_javascript_Core/b3/air/AirPrintSpecial.cpp (224549 => 224550)
--- trunk/Source/_javascript_Core/b3/air/AirPrintSpecial.cpp 2017-11-07 22:38:34 UTC (rev 224549)
+++ trunk/Source/_javascript_Core/b3/air/AirPrintSpecial.cpp 2017-11-07 22:52:34 UTC (rev 224550)
@@ -91,12 +91,12 @@
RegisterSet PrintSpecial::extraEarlyClobberedRegs(Inst&)
{
- return RegisterSet();
+ return { };
}
RegisterSet PrintSpecial::extraClobberedRegs(Inst&)
{
- return RegisterSet();
+ return { };
}
void PrintSpecial::dumpImpl(PrintStream& out) const
Modified: trunk/Source/_javascript_Core/b3/air/testair.cpp (224549 => 224550)
--- trunk/Source/_javascript_Core/b3/air/testair.cpp 2017-11-07 22:38:34 UTC (rev 224549)
+++ trunk/Source/_javascript_Core/b3/air/testair.cpp 2017-11-07 22:52:34 UTC (rev 224550)
@@ -1876,7 +1876,7 @@
B3::BasicBlock* b3Root = proc.addBlock();
B3::PatchpointValue* patchpoint = b3Root->appendNew<B3::PatchpointValue>(proc, B3::Void, B3::Origin());
- patchpoint->clobber(RegisterSet());
+ patchpoint->clobber({ });
patchpoint->setGenerator(
[=] (CCallHelpers& jit, const B3::StackmapGenerationParams&) {
jit.move(CCallHelpers::TrustedImm32(42), pinned);
Modified: trunk/Source/_javascript_Core/bytecode/PolymorphicAccess.h (224549 => 224550)
--- trunk/Source/_javascript_Core/bytecode/PolymorphicAccess.h 2017-11-07 22:38:34 UTC (rev 224549)
+++ trunk/Source/_javascript_Core/bytecode/PolymorphicAccess.h 2017-11-07 22:52:34 UTC (rev 224550)
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2014-2016 Apple Inc. All rights reserved.
+ * Copyright (C) 2014-2017 Apple Inc. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
@@ -233,10 +233,10 @@
const RegisterSet& calculateLiveRegistersForCallAndExceptionHandling();
- SpillState preserveLiveRegistersToStackForCall(const RegisterSet& extra = RegisterSet());
+ SpillState preserveLiveRegistersToStackForCall(const RegisterSet& extra = { });
void restoreLiveRegistersFromStackForCallWithThrownException(const SpillState&);
- void restoreLiveRegistersFromStackForCall(const SpillState&, const RegisterSet& dontRestore = RegisterSet());
+ void restoreLiveRegistersFromStackForCall(const SpillState&, const RegisterSet& dontRestore = { });
const RegisterSet& liveRegistersForCall();
Modified: trunk/Source/_javascript_Core/dfg/DFGJITCode.cpp (224549 => 224550)
--- trunk/Source/_javascript_Core/dfg/DFGJITCode.cpp 2017-11-07 22:38:34 UTC (rev 224549)
+++ trunk/Source/_javascript_Core/dfg/DFGJITCode.cpp 2017-11-07 22:52:34 UTC (rev 224550)
@@ -117,7 +117,7 @@
}
}
- return RegisterSet();
+ return { };
}
#if ENABLE(FTL_JIT)
Modified: trunk/Source/_javascript_Core/ftl/FTLJITCode.cpp (224549 => 224550)
--- trunk/Source/_javascript_Core/ftl/FTLJITCode.cpp 2017-11-07 22:38:34 UTC (rev 224549)
+++ trunk/Source/_javascript_Core/ftl/FTLJITCode.cpp 2017-11-07 22:52:34 UTC (rev 224550)
@@ -143,7 +143,7 @@
return ValueRep::usedRegisters(exit.m_valueReps);
}
}
- return RegisterSet();
+ return { };
}
std::optional<CodeOrigin> JITCode::findPC(CodeBlock* codeBlock, void* pc)
Modified: trunk/Source/_javascript_Core/jit/JITCode.cpp (224549 => 224550)
--- trunk/Source/_javascript_Core/jit/JITCode.cpp 2017-11-07 22:38:34 UTC (rev 224549)
+++ trunk/Source/_javascript_Core/jit/JITCode.cpp 2017-11-07 22:52:34 UTC (rev 224550)
@@ -222,7 +222,7 @@
#if ENABLE(JIT)
RegisterSet JITCode::liveRegistersToPreserveAtExceptionHandlingCallSite(CodeBlock*, CallSiteIndex)
{
- return RegisterSet();
+ return { };
}
#endif
Modified: trunk/Source/_javascript_Core/jit/RegisterSet.cpp (224549 => 224550)
--- trunk/Source/_javascript_Core/jit/RegisterSet.cpp 2017-11-07 22:38:34 UTC (rev 224549)
+++ trunk/Source/_javascript_Core/jit/RegisterSet.cpp 2017-11-07 22:52:34 UTC (rev 224550)
@@ -54,7 +54,7 @@
#elif CPU(ARM_THUMB2) || CPU(ARM_TRADITIONAL)
return RegisterSet(ARMRegisters::lr, ARMRegisters::pc);
#else
- return RegisterSet();
+ return { };
#endif
}
@@ -63,7 +63,7 @@
#if USE(JSVALUE64)
return RegisterSet(GPRInfo::tagTypeNumberRegister, GPRInfo::tagMaskRegister);
#else
- return RegisterSet();
+ return { };
#endif
}
@@ -101,7 +101,7 @@
result.set(MacroAssembler::cmpTempRegister);
return result;
#else
- return RegisterSet();
+ return { };
#endif
}
Modified: trunk/Source/_javascript_Core/jit/RegisterSet.h (224549 => 224550)
--- trunk/Source/_javascript_Core/jit/RegisterSet.h 2017-11-07 22:38:34 UTC (rev 224549)
+++ trunk/Source/_javascript_Core/jit/RegisterSet.h 2017-11-07 22:52:34 UTC (rev 224550)
@@ -40,6 +40,8 @@
class RegisterSet {
public:
+ RegisterSet() { }
+
template<typename... Regs>
explicit RegisterSet(Regs... regs)
{
Modified: trunk/Source/_javascript_Core/wasm/WasmB3IRGenerator.cpp (224549 => 224550)
--- trunk/Source/_javascript_Core/wasm/WasmB3IRGenerator.cpp 2017-11-07 22:38:34 UTC (rev 224549)
+++ trunk/Source/_javascript_Core/wasm/WasmB3IRGenerator.cpp 2017-11-07 22:52:34 UTC (rev 224550)
@@ -919,7 +919,7 @@
tierUp.link(&jit);
const unsigned extraPaddingBytes = 0;
- RegisterSet registersToSpill = RegisterSet();
+ RegisterSet registersToSpill = { };
registersToSpill.add(GPRInfo::argumentGPR1);
unsigned numberOfStackBytesUsedForRegisterPreservation = ScratchRegisterAllocator::preserveRegistersToStackForCall(jit, registersToSpill, extraPaddingBytes);