Changeset 191411 in webkit


Ignore:
Timestamp:
Oct 21, 2015 4:10:45 PM (9 years ago)
Author:
bshafiei@apple.com
Message:

Roll out r191360. rdar://problem/23205990

Location:
tags/Safari-602.1.8
Files:
3 deleted
13 edited

Legend:

Unmodified
Added
Removed
  • tags/Safari-602.1.8/LayoutTests/ChangeLog

    r191375 r191411  
     12015-10-21  Babak Shafiei  <bshafiei@apple.com>
     2
     3        Roll out r191360.
     4
    152015-10-20  Ryan Haddad  <ryanhaddad@apple.com>
    26
  • tags/Safari-602.1.8/LayoutTests/js/caller-property-expected.txt

    r191360 r191411  
    1111PASS strictCaller(nonStrictCallee) threw exception TypeError: Function.caller used to retrieve strict caller.
    1212PASS strictCaller(strictCallee) threw exception TypeError: Type error.
    13 PASS strictTailCaller(nonStrictCallee) is null
     13FAIL strictTailCaller(nonStrictCallee) should be null. Threw exception TypeError: Function.caller used to retrieve strict caller
    1414PASS strictTailCaller(strictCallee) threw exception TypeError: Type error.
    1515PASS nonStrictCaller(boundNonStrictCallee) is nonStrictCaller
     
    1717PASS strictCaller(boundNonStrictCallee) threw exception TypeError: Function.caller used to retrieve strict caller.
    1818PASS strictCaller(boundStrictCallee) threw exception TypeError: Type error.
    19 PASS strictTailCaller(boundNonStrictCallee) is null
     19FAIL strictTailCaller(boundNonStrictCallee) should be null. Threw exception TypeError: Function.caller used to retrieve strict caller
    2020PASS strictTailCaller(boundStrictCallee) threw exception TypeError: Type error.
    2121PASS nonStrictGetter(nonStrictAccessor) is nonStrictGetter
  • tags/Safari-602.1.8/Source/JavaScriptCore/ChangeLog

    r191364 r191411  
     12015-10-21  Babak Shafiei  <bshafiei@apple.com>
     2
     3        Roll out r191360.
     4
    152015-10-20  Mark Lam  <mark.lam@apple.com>
    26
  • tags/Safari-602.1.8/Source/JavaScriptCore/dfg/DFGOSRExitCompilerCommon.cpp

    r191360 r191411  
    215215                         
    216216        jit.storePtr(AssemblyHelpers::TrustedImmPtr(baselineCodeBlock), AssemblyHelpers::addressFor((VirtualRegister)(inlineCallFrame->stackOffset + JSStack::CodeBlock)));
    217 
    218         // Restore the inline call frame's callee save registers.
    219         // If this inlined frame is a tail call that will return back to the original caller, we need to
    220         // copy the prior contents of the tag registers already saved for the outer frame to this frame.
    221         jit.emitSaveOrCopyCalleeSavesFor(
    222             baselineCodeBlock,
    223             static_cast<VirtualRegister>(inlineCallFrame->stackOffset),
    224             trueCaller ? AssemblyHelpers::UseExistingTagRegisterContents : AssemblyHelpers::CopySavedTagRegistersFromBaseFrame,
    225             GPRInfo::regT2);
    226 
     217        jit.emitSaveCalleeSavesFor(baselineCodeBlock, static_cast<VirtualRegister>(inlineCallFrame->stackOffset));
    227218        if (!inlineCallFrame->isVarargs())
    228219            jit.store32(AssemblyHelpers::TrustedImm32(inlineCallFrame->arguments.size()), AssemblyHelpers::payloadFor((VirtualRegister)(inlineCallFrame->stackOffset + JSStack::ArgumentCount)));
  • tags/Safari-602.1.8/Source/JavaScriptCore/jit/AssemblyHelpers.h

    r191360 r191411  
    179179    }
    180180
    181     void emitSaveCalleeSavesFor(CodeBlock* codeBlock)
     181    void emitSaveCalleeSavesFor(CodeBlock* codeBlock, VirtualRegister offsetVirtualRegister = static_cast<VirtualRegister>(0))
    182182    {
    183183        ASSERT(codeBlock);
     
    191191            if (dontSaveRegisters.get(entry.reg()))
    192192                continue;
    193             storePtr(entry.reg().gpr(), Address(framePointerRegister, entry.offset()));
     193            storePtr(entry.reg().gpr(), Address(framePointerRegister, offsetVirtualRegister.offsetInBytes() + entry.offset()));
    194194        }
    195195    }
    196    
    197     enum RestoreTagRegisterMode { UseExistingTagRegisterContents, CopySavedTagRegistersFromBaseFrame };
    198 
    199     void emitSaveOrCopyCalleeSavesFor(CodeBlock* codeBlock, VirtualRegister offsetVirtualRegister, RestoreTagRegisterMode tagRegisterMode, GPRReg temp)
    200     {
    201         ASSERT(codeBlock);
    202        
    203         RegisterAtOffsetList* calleeSaves = codeBlock->calleeSaveRegisters();
    204         RegisterSet dontSaveRegisters = RegisterSet(RegisterSet::stackRegisters(), RegisterSet::allFPRs());
    205         unsigned registerCount = calleeSaves->size();
    206        
    207         for (unsigned i = 0; i < registerCount; i++) {
    208             RegisterAtOffset entry = calleeSaves->at(i);
    209             if (dontSaveRegisters.get(entry.reg()))
    210                 continue;
    211            
    212             GPRReg registerToWrite;
    213            
    214 #if USE(JSVALUE32_64)
    215             UNUSED_PARAM(tagRegisterMode);
    216             UNUSED_PARAM(temp);
    217 #else
    218             if (tagRegisterMode == CopySavedTagRegistersFromBaseFrame
    219                 && (entry.reg() == GPRInfo::tagTypeNumberRegister || entry.reg() == GPRInfo::tagMaskRegister)) {
    220                 registerToWrite = temp;
    221                 loadPtr(AssemblyHelpers::Address(GPRInfo::callFrameRegister, entry.offset()), registerToWrite);
    222             } else
    223 #endif
    224                 registerToWrite = entry.reg().gpr();
    225 
    226             storePtr(registerToWrite, Address(framePointerRegister, offsetVirtualRegister.offsetInBytes() + entry.offset()));
    227         }
    228     }
    229    
     196
    230197    void emitRestoreCalleeSavesFor(CodeBlock* codeBlock)
    231198    {
  • tags/Safari-602.1.8/Source/JavaScriptCore/runtime/Options.h

    r191360 r191411  
    132132    \
    133133    v(bool, useFunctionDotArguments, true, nullptr) \
    134     v(bool, useTailCalls, true, nullptr) \
     134    v(bool, useTailCalls, false, nullptr) \
    135135    \
    136136    /* dumpDisassembly implies dumpDFGDisassembly. */ \
  • tags/Safari-602.1.8/Source/JavaScriptCore/tests/es6.yaml

    r191360 r191411  
    880880  cmd: runES6 :fail
    881881- path: es6/proper_tail_calls_tail_call_optimisation_direct_recursion.js
    882   cmd: runES6 :normal
     882  cmd: runES6 :fail
    883883- path: es6/proper_tail_calls_tail_call_optimisation_mutual_recursion.js
    884   cmd: runES6 :normal
     884  cmd: runES6 :fail
    885885- path: es6/prototype_of_bound_functions_arrow_functions.js
    886886  cmd: runES6 :fail
  • tags/Safari-602.1.8/Source/JavaScriptCore/tests/stress/dfg-tail-calls.js

    r191360 r191411  
     1//@ skip
    12(function nonInlinedTailCall() {
    23    function callee() { if (callee.caller != nonInlinedTailCall) throw new Error(); }
  • tags/Safari-602.1.8/Source/JavaScriptCore/tests/stress/mutual-tail-call-no-stack-overflow.js

    r191360 r191411  
     1//@ skip
    12function shouldThrow(func, errorMessage) {
    23    var errorThrown = false;
  • tags/Safari-602.1.8/Source/JavaScriptCore/tests/stress/tail-call-in-inline-cache.js

    r191360 r191411  
     1//@ skip
    12"use strict";
    23
  • tags/Safari-602.1.8/Source/JavaScriptCore/tests/stress/tail-call-no-stack-overflow.js

    r191360 r191411  
     1//@ skip
    12function shouldThrow(func, errorMessage) {
    23    var errorThrown = false;
  • tags/Safari-602.1.8/Source/JavaScriptCore/tests/stress/tail-call-recognize.js

    r191360 r191411  
     1//@ skip
    12function callerMustBeRun() {
    23    if (!Object.is(callerMustBeRun.caller, runTests))
  • tags/Safari-602.1.8/Source/JavaScriptCore/tests/stress/tail-call-varargs-no-stack-overflow.js

    r191360 r191411  
     1//@ skip
    12function shouldThrow(func, errorMessage) {
    23    var errorThrown = false;
Note: See TracChangeset for help on using the changeset viewer.