- Revision
- 189357
- Author
- [email protected]
- Date
- 2015-09-04 11:00:24 -0700 (Fri, 04 Sep 2015)
Log Message
Make a bunch of MacroAssembler operations constexpr
https://bugs.webkit.org/show_bug.cgi?id=148334
Reviewed by Saam Barati.
This is in preparation of https://bugs.webkit.org/show_bug.cgi?id=148335 .
* assembler/ARM64Assembler.h:
(JSC::ARM64Registers::isSp):
(JSC::ARM64Registers::isZr):
(JSC::ARM64Assembler::firstRegister):
(JSC::ARM64Assembler::lastRegister):
(JSC::ARM64Assembler::firstFPRegister):
(JSC::ARM64Assembler::lastFPRegister):
(JSC::ARM64Assembler::isSp):
(JSC::ARM64Assembler::isZr):
* assembler/ARMAssembler.h:
(JSC::ARMAssembler::firstRegister):
(JSC::ARMAssembler::lastRegister):
(JSC::ARMAssembler::firstFPRegister):
(JSC::ARMAssembler::lastFPRegister):
* assembler/AbstractMacroAssembler.h:
(JSC::AbstractMacroAssembler::firstRegister):
(JSC::AbstractMacroAssembler::lastRegister):
(JSC::AbstractMacroAssembler::firstFPRegister):
(JSC::AbstractMacroAssembler::lastFPRegister):
* assembler/MIPSAssembler.h:
(JSC::MIPSAssembler::firstRegister):
(JSC::MIPSAssembler::lastRegister):
(JSC::MIPSAssembler::firstFPRegister):
(JSC::MIPSAssembler::lastFPRegister):
* assembler/MacroAssembler.h:
(JSC::MacroAssembler::nextRegister):
(JSC::MacroAssembler::nextFPRegister):
(JSC::MacroAssembler::numberOfRegisters):
(JSC::MacroAssembler::registerIndex):
(JSC::MacroAssembler::numberOfFPRegisters):
(JSC::MacroAssembler::fpRegisterIndex):
(JSC::MacroAssembler::totalNumberOfRegisters):
* assembler/SH4Assembler.h:
(JSC::SH4Assembler::firstRegister):
(JSC::SH4Assembler::lastRegister):
(JSC::SH4Assembler::firstFPRegister):
(JSC::SH4Assembler::lastFPRegister):
* assembler/X86Assembler.h:
(JSC::X86Assembler::firstRegister):
(JSC::X86Assembler::lastRegister):
(JSC::X86Assembler::firstFPRegister):
(JSC::X86Assembler::lastFPRegister):
Modified Paths
Diff
Modified: trunk/Source/_javascript_Core/ChangeLog (189356 => 189357)
--- trunk/Source/_javascript_Core/ChangeLog 2015-09-04 17:43:49 UTC (rev 189356)
+++ trunk/Source/_javascript_Core/ChangeLog 2015-09-04 18:00:24 UTC (rev 189357)
@@ -1,3 +1,55 @@
+2015-09-04 Basile Clement <[email protected]>
+
+ Make a bunch of MacroAssembler operations constexpr
+ https://bugs.webkit.org/show_bug.cgi?id=148334
+
+ Reviewed by Saam Barati.
+
+ This is in preparation of https://bugs.webkit.org/show_bug.cgi?id=148335 .
+
+ * assembler/ARM64Assembler.h:
+ (JSC::ARM64Registers::isSp):
+ (JSC::ARM64Registers::isZr):
+ (JSC::ARM64Assembler::firstRegister):
+ (JSC::ARM64Assembler::lastRegister):
+ (JSC::ARM64Assembler::firstFPRegister):
+ (JSC::ARM64Assembler::lastFPRegister):
+ (JSC::ARM64Assembler::isSp):
+ (JSC::ARM64Assembler::isZr):
+ * assembler/ARMAssembler.h:
+ (JSC::ARMAssembler::firstRegister):
+ (JSC::ARMAssembler::lastRegister):
+ (JSC::ARMAssembler::firstFPRegister):
+ (JSC::ARMAssembler::lastFPRegister):
+ * assembler/AbstractMacroAssembler.h:
+ (JSC::AbstractMacroAssembler::firstRegister):
+ (JSC::AbstractMacroAssembler::lastRegister):
+ (JSC::AbstractMacroAssembler::firstFPRegister):
+ (JSC::AbstractMacroAssembler::lastFPRegister):
+ * assembler/MIPSAssembler.h:
+ (JSC::MIPSAssembler::firstRegister):
+ (JSC::MIPSAssembler::lastRegister):
+ (JSC::MIPSAssembler::firstFPRegister):
+ (JSC::MIPSAssembler::lastFPRegister):
+ * assembler/MacroAssembler.h:
+ (JSC::MacroAssembler::nextRegister):
+ (JSC::MacroAssembler::nextFPRegister):
+ (JSC::MacroAssembler::numberOfRegisters):
+ (JSC::MacroAssembler::registerIndex):
+ (JSC::MacroAssembler::numberOfFPRegisters):
+ (JSC::MacroAssembler::fpRegisterIndex):
+ (JSC::MacroAssembler::totalNumberOfRegisters):
+ * assembler/SH4Assembler.h:
+ (JSC::SH4Assembler::firstRegister):
+ (JSC::SH4Assembler::lastRegister):
+ (JSC::SH4Assembler::firstFPRegister):
+ (JSC::SH4Assembler::lastFPRegister):
+ * assembler/X86Assembler.h:
+ (JSC::X86Assembler::firstRegister):
+ (JSC::X86Assembler::lastRegister):
+ (JSC::X86Assembler::firstFPRegister):
+ (JSC::X86Assembler::lastFPRegister):
+
2015-08-24 Basile Clement <[email protected]>
Add a bunch of operators
Modified: trunk/Source/_javascript_Core/assembler/ARM64Assembler.h (189356 => 189357)
--- trunk/Source/_javascript_Core/assembler/ARM64Assembler.h 2015-09-04 17:43:49 UTC (rev 189356)
+++ trunk/Source/_javascript_Core/assembler/ARM64Assembler.h 2015-09-04 18:00:24 UTC (rev 189357)
@@ -469,8 +469,8 @@
q31,
} FPRegisterID;
- static bool isSp(RegisterID reg) { return reg == sp; }
- static bool isZr(RegisterID reg) { return reg == zr; }
+ static constexpr bool isSp(RegisterID reg) { return reg == sp; }
+ static constexpr bool isZr(RegisterID reg) { return reg == zr; }
}
class ARM64Assembler {
@@ -478,15 +478,15 @@
typedef ARM64Registers::RegisterID RegisterID;
typedef ARM64Registers::FPRegisterID FPRegisterID;
- static RegisterID firstRegister() { return ARM64Registers::x0; }
- static RegisterID lastRegister() { return ARM64Registers::sp; }
+ static constexpr RegisterID firstRegister() { return ARM64Registers::x0; }
+ static constexpr RegisterID lastRegister() { return ARM64Registers::sp; }
- static FPRegisterID firstFPRegister() { return ARM64Registers::q0; }
- static FPRegisterID lastFPRegister() { return ARM64Registers::q31; }
+ static constexpr FPRegisterID firstFPRegister() { return ARM64Registers::q0; }
+ static constexpr FPRegisterID lastFPRegister() { return ARM64Registers::q31; }
private:
- static bool isSp(RegisterID reg) { return ARM64Registers::isSp(reg); }
- static bool isZr(RegisterID reg) { return ARM64Registers::isZr(reg); }
+ static constexpr bool isSp(RegisterID reg) { return ARM64Registers::isSp(reg); }
+ static constexpr bool isZr(RegisterID reg) { return ARM64Registers::isZr(reg); }
public:
ARM64Assembler()
Modified: trunk/Source/_javascript_Core/assembler/ARMAssembler.h (189356 => 189357)
--- trunk/Source/_javascript_Core/assembler/ARMAssembler.h 2015-09-04 17:43:49 UTC (rev 189356)
+++ trunk/Source/_javascript_Core/assembler/ARMAssembler.h 2015-09-04 18:00:24 UTC (rev 189357)
@@ -138,11 +138,11 @@
ARMBuffer& buffer() { return m_buffer; }
- static RegisterID firstRegister() { return ARMRegisters::r0; }
- static RegisterID lastRegister() { return ARMRegisters::r15; }
+ static constexpr RegisterID firstRegister() { return ARMRegisters::r0; }
+ static constexpr RegisterID lastRegister() { return ARMRegisters::r15; }
- static FPRegisterID firstFPRegister() { return ARMRegisters::d0; }
- static FPRegisterID lastFPRegister() { return ARMRegisters::d31; }
+ static constexpr FPRegisterID firstFPRegister() { return ARMRegisters::d0; }
+ static constexpr FPRegisterID lastFPRegister() { return ARMRegisters::d31; }
// ARM conditional constants
typedef enum {
Modified: trunk/Source/_javascript_Core/assembler/AbstractMacroAssembler.h (189356 => 189357)
--- trunk/Source/_javascript_Core/assembler/AbstractMacroAssembler.h 2015-09-04 17:43:49 UTC (rev 189356)
+++ trunk/Source/_javascript_Core/assembler/AbstractMacroAssembler.h 2015-09-04 18:00:24 UTC (rev 189357)
@@ -103,11 +103,11 @@
typedef typename AssemblerType::RegisterID RegisterID;
typedef typename AssemblerType::FPRegisterID FPRegisterID;
- static RegisterID firstRegister() { return AssemblerType::firstRegister(); }
- static RegisterID lastRegister() { return AssemblerType::lastRegister(); }
+ static constexpr RegisterID firstRegister() { return AssemblerType::firstRegister(); }
+ static constexpr RegisterID lastRegister() { return AssemblerType::lastRegister(); }
- static FPRegisterID firstFPRegister() { return AssemblerType::firstFPRegister(); }
- static FPRegisterID lastFPRegister() { return AssemblerType::lastFPRegister(); }
+ static constexpr FPRegisterID firstFPRegister() { return AssemblerType::firstFPRegister(); }
+ static constexpr FPRegisterID lastFPRegister() { return AssemblerType::lastFPRegister(); }
// Section 1: MacroAssembler operand types
//
Modified: trunk/Source/_javascript_Core/assembler/MIPSAssembler.h (189356 => 189357)
--- trunk/Source/_javascript_Core/assembler/MIPSAssembler.h 2015-09-04 17:43:49 UTC (rev 189356)
+++ trunk/Source/_javascript_Core/assembler/MIPSAssembler.h 2015-09-04 18:00:24 UTC (rev 189357)
@@ -151,11 +151,11 @@
typedef MIPSRegisters::FPRegisterID FPRegisterID;
typedef SegmentedVector<AssemblerLabel, 64> Jumps;
- static RegisterID firstRegister() { return MIPSRegisters::r0; }
- static RegisterID lastRegister() { return MIPSRegisters::r31; }
+ static constexpr RegisterID firstRegister() { return MIPSRegisters::r0; }
+ static constexpr RegisterID lastRegister() { return MIPSRegisters::r31; }
- static FPRegisterID firstFPRegister() { return MIPSRegisters::f0; }
- static FPRegisterID lastFPRegister() { return MIPSRegisters::f31; }
+ static constexpr FPRegisterID firstFPRegister() { return MIPSRegisters::f0; }
+ static constexpr FPRegisterID lastFPRegister() { return MIPSRegisters::f31; }
MIPSAssembler()
: m_indexOfLastWatchpoint(INT_MIN)
Modified: trunk/Source/_javascript_Core/assembler/MacroAssembler.h (189356 => 189357)
--- trunk/Source/_javascript_Core/assembler/MacroAssembler.h 2015-09-04 17:43:49 UTC (rev 189356)
+++ trunk/Source/_javascript_Core/assembler/MacroAssembler.h 2015-09-04 18:00:24 UTC (rev 189357)
@@ -69,42 +69,42 @@
class MacroAssembler : public MacroAssemblerBase {
public:
- static RegisterID nextRegister(RegisterID reg)
+ static constexpr RegisterID nextRegister(RegisterID reg)
{
return static_cast<RegisterID>(reg + 1);
}
- static FPRegisterID nextFPRegister(FPRegisterID reg)
+ static constexpr FPRegisterID nextFPRegister(FPRegisterID reg)
{
return static_cast<FPRegisterID>(reg + 1);
}
- static unsigned numberOfRegisters()
+ static constexpr unsigned numberOfRegisters()
{
return lastRegister() - firstRegister() + 1;
}
- static unsigned registerIndex(RegisterID reg)
+ static constexpr unsigned registerIndex(RegisterID reg)
{
return reg - firstRegister();
}
- static unsigned numberOfFPRegisters()
+ static constexpr unsigned numberOfFPRegisters()
{
return lastFPRegister() - firstFPRegister() + 1;
}
- static unsigned fpRegisterIndex(FPRegisterID reg)
+ static constexpr unsigned fpRegisterIndex(FPRegisterID reg)
{
return reg - firstFPRegister();
}
- static unsigned registerIndex(FPRegisterID reg)
+ static constexpr unsigned registerIndex(FPRegisterID reg)
{
return fpRegisterIndex(reg) + numberOfRegisters();
}
- static unsigned totalNumberOfRegisters()
+ static constexpr unsigned totalNumberOfRegisters()
{
return numberOfRegisters() + numberOfFPRegisters();
}
Modified: trunk/Source/_javascript_Core/assembler/SH4Assembler.h (189356 => 189357)
--- trunk/Source/_javascript_Core/assembler/SH4Assembler.h 2015-09-04 17:43:49 UTC (rev 189356)
+++ trunk/Source/_javascript_Core/assembler/SH4Assembler.h 2015-09-04 18:00:24 UTC (rev 189357)
@@ -327,11 +327,11 @@
static const RegisterID scratchReg2 = SH4Registers::r11;
static const uint32_t maxInstructionSize = 16;
- static RegisterID firstRegister() { return SH4Registers::r0; }
- static RegisterID lastRegister() { return SH4Registers::r15; }
+ static constexpr RegisterID firstRegister() { return SH4Registers::r0; }
+ static constexpr RegisterID lastRegister() { return SH4Registers::r15; }
- static FPRegisterID firstFPRegister() { return SH4Registers::dr0; }
- static FPRegisterID lastFPRegister() { return SH4Registers::dr14; }
+ static constexpr FPRegisterID firstFPRegister() { return SH4Registers::dr0; }
+ static constexpr FPRegisterID lastFPRegister() { return SH4Registers::dr14; }
enum {
padForAlign8 = 0x00,
Modified: trunk/Source/_javascript_Core/assembler/X86Assembler.h (189356 => 189357)
--- trunk/Source/_javascript_Core/assembler/X86Assembler.h 2015-09-04 17:43:49 UTC (rev 189356)
+++ trunk/Source/_javascript_Core/assembler/X86Assembler.h 2015-09-04 18:00:24 UTC (rev 189357)
@@ -123,8 +123,8 @@
public:
typedef X86Registers::RegisterID RegisterID;
- static RegisterID firstRegister() { return X86Registers::eax; }
- static RegisterID lastRegister()
+ static constexpr RegisterID firstRegister() { return X86Registers::eax; }
+ static constexpr RegisterID lastRegister()
{
#if CPU(X86_64)
return X86Registers::r15;
@@ -136,8 +136,8 @@
typedef X86Registers::XMMRegisterID XMMRegisterID;
typedef XMMRegisterID FPRegisterID;
- static FPRegisterID firstFPRegister() { return X86Registers::xmm0; }
- static FPRegisterID lastFPRegister()
+ static constexpr FPRegisterID firstFPRegister() { return X86Registers::xmm0; }
+ static constexpr FPRegisterID lastFPRegister()
{
#if CPU(X86_64)
return X86Registers::xmm15;