Title: [157612] trunk/Source/_javascript_Core
Revision
157612
Author
gga...@apple.com
Date
2013-10-17 16:29:16 -0700 (Thu, 17 Oct 2013)

Log Message

Removed the JITStackFrame struct
https://bugs.webkit.org/show_bug.cgi?id=123001

Reviewed by Anders Carlsson.

* jit/JITStubs.h: JITStackFrame and JITStubArg are unused now, since all
our helper functions obey the C function call ABI.

Modified Paths

Diff

Modified: trunk/Source/_javascript_Core/ChangeLog (157611 => 157612)


--- trunk/Source/_javascript_Core/ChangeLog	2013-10-17 23:20:07 UTC (rev 157611)
+++ trunk/Source/_javascript_Core/ChangeLog	2013-10-17 23:29:16 UTC (rev 157612)
@@ -1,5 +1,15 @@
 2013-10-17  Geoffrey Garen  <gga...@apple.com>
 
+        Removed the JITStackFrame struct
+        https://bugs.webkit.org/show_bug.cgi?id=123001
+
+        Reviewed by Anders Carlsson.
+
+        * jit/JITStubs.h: JITStackFrame and JITStubArg are unused now, since all
+        our helper functions obey the C function call ABI.
+
+2013-10-17  Geoffrey Garen  <gga...@apple.com>
+
         Removed an unused #define
         https://bugs.webkit.org/show_bug.cgi?id=123000
 

Modified: trunk/Source/_javascript_Core/jit/JITStubs.h (157611 => 157612)


--- trunk/Source/_javascript_Core/jit/JITStubs.h	2013-10-17 23:20:07 UTC (rev 157611)
+++ trunk/Source/_javascript_Core/jit/JITStubs.h	2013-10-17 23:29:16 UTC (rev 157612)
@@ -62,259 +62,6 @@
 class RegExp;
 class Structure;
 
-template <typename T> class Weak;
-
-union JITStubArg {
-    void* asPointer;
-    EncodedJSValue asEncodedJSValue;
-    int32_t asInt32;
-
-    JSValue jsValue() { return JSValue::decode(asEncodedJSValue); }
-    JSObject* jsObject() { return static_cast<JSObject*>(asPointer); }
-    Register* reg() { return static_cast<Register*>(asPointer); }
-    Identifier& identifier() { return *static_cast<Identifier*>(asPointer); }
-    int32_t int32() { return asInt32; }
-    CodeBlock* codeBlock() { return static_cast<CodeBlock*>(asPointer); }
-    FunctionExecutable* function() { return static_cast<FunctionExecutable*>(asPointer); }
-    RegExp* regExp() { return static_cast<RegExp*>(asPointer); }
-    JSPropertyNameIterator* propertyNameIterator() { return static_cast<JSPropertyNameIterator*>(asPointer); }
-    JSGlobalObject* globalObject() { return static_cast<JSGlobalObject*>(asPointer); }
-    JSString* jsString() { return static_cast<JSString*>(asPointer); }
-    Structure* structure() { return static_cast<Structure*>(asPointer); }
-    ReturnAddressPtr returnAddress() { return ReturnAddressPtr(asPointer); }
-    ArrayAllocationProfile* arrayAllocationProfile() { return static_cast<ArrayAllocationProfile*>(asPointer); }
-    Instruction* pc() { return static_cast<Instruction*>(asPointer); }
-};
-    
-#if !OS(WINDOWS) && CPU(X86_64)
-struct JITStackFrame {
-    void* reserved; // Unused
-    JITStubArg args[6];
-    void* padding[2]; // Maintain 32-byte stack alignment (possibly overkill).
-
-    void* code;
-    JSStack* stack;
-    CallFrame* callFrame;
-    void* unused1;
-    void* unused2;
-    VM* vm;
-
-    void* savedRBX;
-    void* savedR15;
-    void* savedR14;
-    void* savedR13;
-    void* savedR12;
-    void* savedRBP;
-    void* savedRIP;
-
-    // When JIT code makes a call, it pushes its return address just below the rest of the stack.
-    ReturnAddressPtr* returnAddressSlot() { return reinterpret_cast<ReturnAddressPtr*>(this) - 1; }
-};
-#elif CPU(ARM64)
-struct JITStackFrame {
-    JITStubArg args[6];
-
-    ReturnAddressPtr thunkReturnAddress;
-
-    void* preservedReturnAddress;
-    void* preservedX19;
-    void* preservedX20;
-    void* preservedX21;
-    void* preservedX22;
-    void* preservedX23;
-    void* preservedX24;
-    void* preservedX25;
-    void* preservedX26;
-    void* preservedX27;
-    void* preservedX28;
-
-    JSStack* stack;
-    CallFrame* callFrame;
-    LegacyProfiler** enabledProfilerReference;
-    VM* vm;
-    
-    ReturnAddressPtr* returnAddressSlot() { return &thunkReturnAddress; }
-};
-#elif OS(WINDOWS) && CPU(X86_64)
-struct JITStackFrame {
-    void* shadow[4]; // Shadow space reserved for a callee's parameters home addresses
-    void* reserved; // Unused, also maintains the 16-bytes stack alignment
-    JITStubArg args[6];
-
-    void* savedRBX;
-    void* savedR15;
-    void* savedR14;
-    void* savedR13;
-    void* savedR12;
-    void* savedRBP;
-    void* savedRIP;
-
-    // Home addresses for our register passed parameters
-    // http://msdn.microsoft.com/en-us/library/ew5tede7.aspx
-    void* code;
-    JSStack* stack;
-    CallFrame* callFrame;
-    void* unused1;
-
-    // Passed on the stack
-    void* unused2;
-    VM* vm;
-
-    // When JIT code makes a call, it pushes its return address just below the rest of the stack.
-    ReturnAddressPtr* returnAddressSlot() { return reinterpret_cast<ReturnAddressPtr*>(this) - 1; }
-};
-#elif CPU(X86)
-#if COMPILER(MSVC) || (OS(WINDOWS) && COMPILER(GCC))
-#pragma pack(push)
-#pragma pack(4)
-#endif // COMPILER(MSVC) || (OS(WINDOWS) && COMPILER(GCC))
-struct JITStackFrame {
-    void* reserved; // Unused
-    JITStubArg args[6];
-#if USE(JSVALUE32_64)
-    void* padding[2]; // Maintain 16-byte stack alignment.
-#endif
-
-    void* savedEBX;
-    void* savedEDI;
-    void* savedESI;
-    void* savedEBP;
-    void* savedEIP;
-
-    void* code;
-    JSStack* stack;
-    CallFrame* callFrame;
-    void* unused1;
-    void* unused2;
-    VM* vm;
-        
-    // When JIT code makes a call, it pushes its return address just below the rest of the stack.
-    ReturnAddressPtr* returnAddressSlot() { return reinterpret_cast<ReturnAddressPtr*>(this) - 1; }
-};
-#if COMPILER(MSVC) || (OS(WINDOWS) && COMPILER(GCC))
-#pragma pack(pop)
-#endif // COMPILER(MSVC) || (OS(WINDOWS) && COMPILER(GCC))
-#elif CPU(ARM_THUMB2)
-struct JITStackFrame {
-    JITStubArg reserved; // Unused
-    JITStubArg args[6];
-
-    ReturnAddressPtr thunkReturnAddress;
-
-    void* preservedReturnAddress;
-    void* preservedR4;
-    void* preservedR5;
-    void* preservedR6;
-    void* preservedR7;
-    void* preservedR8;
-    void* preservedR9;
-    void* preservedR10;
-    void* preservedR11;
-
-    // These arguments passed in r1..r3 (r0 contained the entry code pointed, which is not preserved)
-    JSStack* stack;
-    CallFrame* callFrame;
-
-    // These arguments passed on the stack.
-    void* unused1;
-    VM* vm;
-        
-    ReturnAddressPtr* returnAddressSlot() { return &thunkReturnAddress; }
-};
-#elif CPU(ARM_TRADITIONAL)
-#if COMPILER(MSVC)
-#pragma pack(push)
-#pragma pack(4)
-#endif // COMPILER(MSVC)
-struct JITStackFrame {
-    JITStubArg padding; // Unused
-    JITStubArg args[7];
-
-    ReturnAddressPtr thunkReturnAddress;
-
-    void* preservedR4;
-    void* preservedR5;
-    void* preservedR6;
-    void* preservedR8;
-    void* preservedR9;
-    void* preservedR10;
-    void* preservedR11;
-    void* preservedLink;
-
-    JSStack* stack;
-    CallFrame* callFrame;
-    void* unused1;
-
-    // These arguments passed on the stack.
-    void* unused2;
-    VM* vm;
-
-    // When JIT code makes a call, it pushes its return address just below the rest of the stack.
-    ReturnAddressPtr* returnAddressSlot() { return &thunkReturnAddress; }
-};
-#if COMPILER(MSVC)
-#pragma pack(pop)
-#endif // COMPILER(MSVC)
-#elif CPU(MIPS)
-struct JITStackFrame {
-    JITStubArg reserved; // Unused
-    JITStubArg args[6];
-
-#if USE(JSVALUE32_64)
-    void* padding; // Make the overall stack length 8-byte aligned.
-#endif
-
-    void* preservedGP; // store GP when using PIC code
-    void* preservedS0;
-    void* preservedS1;
-    void* preservedS2;
-    void* preservedS3;
-    void* preservedS4;
-    void* preservedReturnAddress;
-
-    ReturnAddressPtr thunkReturnAddress;
-
-    // These arguments passed in a1..a3 (a0 contained the entry code pointed, which is not preserved)
-    JSStack* stack;
-    CallFrame* callFrame;
-    void* unused1;
-
-    // These arguments passed on the stack.
-    void* unused2;
-    VM* vm;
-
-    ReturnAddressPtr* returnAddressSlot() { return &thunkReturnAddress; }
-};
-#elif CPU(SH4)
-struct JITStackFrame {
-    JITStubArg padding; // Unused
-    JITStubArg args[6];
-
-    ReturnAddressPtr thunkReturnAddress;
-
-    void* savedR8;
-    void* savedR9;
-    void* savedR10;
-    void* savedR11;
-    void* savedR13;
-    void* savedRPR;
-    void* savedR14;
-
-    // These arguments are passed in r5, r6 and r7.
-    JSStack* stack;
-    CallFrame* callFrame;
-    void* unused1;
-
-    // These arguments are passed on the stack.
-    void* unused2;
-    VM* vm;
-
-    ReturnAddressPtr* returnAddressSlot() { return &thunkReturnAddress; }
-};
-#else
-#error "JITStackFrame not defined for this platform."
-#endif
-
 #define STUB_ARGS_DECLARATION void** args
 #define STUB_ARGS (args)
 
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to