Title: [147821] branches/dfgFourthTier/Source/_javascript_Core
Revision
147821
Author
fpi...@apple.com
Date
2013-04-05 17:10:40 -0700 (Fri, 05 Apr 2013)

Log Message

fourthTier: DFG should better abstract arguments
https://bugs.webkit.org/show_bug.cgi?id=114073

Reviewed by Mark Hahnenberg.

* dfg/DFGGPRInfo.h:
(GPRInfo):
(JSC::DFG::GPRInfo::toArgumentRegister):

Modified Paths

Diff

Modified: branches/dfgFourthTier/Source/_javascript_Core/ChangeLog (147820 => 147821)


--- branches/dfgFourthTier/Source/_javascript_Core/ChangeLog	2013-04-06 00:07:46 UTC (rev 147820)
+++ branches/dfgFourthTier/Source/_javascript_Core/ChangeLog	2013-04-06 00:10:40 UTC (rev 147821)
@@ -1,3 +1,14 @@
+2013-04-05  Filip Pizlo  <fpi...@apple.com>
+
+        fourthTier: DFG should better abstract arguments
+        https://bugs.webkit.org/show_bug.cgi?id=114073
+
+        Reviewed by Mark Hahnenberg.
+
+        * dfg/DFGGPRInfo.h:
+        (GPRInfo):
+        (JSC::DFG::GPRInfo::toArgumentRegister):
+
 2013-04-03  Filip Pizlo  <fpi...@apple.com>
 
         fourthTier: put DFG data into a DFG::JITCode, and put common DFG and FTL data into something accessible from both DFG::JITCode and FTL::JITCode

Modified: branches/dfgFourthTier/Source/_javascript_Core/dfg/DFGGPRInfo.h (147820 => 147821)


--- branches/dfgFourthTier/Source/_javascript_Core/dfg/DFGGPRInfo.h	2013-04-06 00:07:46 UTC (rev 147820)
+++ branches/dfgFourthTier/Source/_javascript_Core/dfg/DFGGPRInfo.h	2013-04-06 00:10:40 UTC (rev 147821)
@@ -259,6 +259,7 @@
 public:
     typedef GPRReg RegisterType;
     static const unsigned numberOfRegisters = 5;
+    static const unsigned numberOfArgumentRegisters = NUMBER_OF_ARGUMENT_REGISTERS;
 
     // Temporary registers.
     static const GPRReg regT0 = X86Registers::eax;
@@ -321,6 +322,7 @@
 public:
     typedef GPRReg RegisterType;
     static const unsigned numberOfRegisters = 9;
+    static const unsigned numberOfArgumentRegisters = NUMBER_OF_ARGUMENT_REGISTERS;
 
     // These registers match the baseline JIT.
     static const GPRReg cachedResultRegister = X86Registers::eax;
@@ -358,6 +360,13 @@
         static const GPRReg registerForIndex[numberOfRegisters] = { regT0, regT1, regT2, regT3, regT4, regT5, regT6, regT7, regT8 };
         return registerForIndex[index];
     }
+    
+    static GPRReg toArgumentRegister(unsigned index)
+    {
+        ASSERT(index < numberOfArgumentRegisters);
+        static const GPRReg registerForIndex[numberOfArgumentRegisters] = { argumentGPR0, argumentGPR1, argumentGPR2, argumentGPR3, argumentGPR4, argumentGPR5 };
+        return registerForIndex[index];
+    }
 
     static unsigned toIndex(GPRReg reg)
     {
@@ -395,6 +404,7 @@
 public:
     typedef GPRReg RegisterType;
     static const unsigned numberOfRegisters = 8;
+    static const unsigned numberOfArgumentRegisters = NUMBER_OF_ARGUMENT_REGISTERS;
 
     // Temporary registers.
     static const GPRReg regT0 = ARMRegisters::r0;
@@ -468,6 +478,7 @@
 public:
     typedef GPRReg RegisterType;
     static const unsigned numberOfRegisters = 6;
+    static const unsigned numberOfArgumentRegisters = NUMBER_OF_ARGUMENT_REGISTERS;
 
     // Temporary registers.
     static const GPRReg regT0 = MIPSRegisters::v0;
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to