Changeset 155675 in webkit


Ignore:
Timestamp:
Sep 13, 2013 12:34:14 AM (11 years ago)
Author:
commit-queue@webkit.org
Message:

Fixed crash in V8 benchmark suite in ARM,softp,EABI environment.
https://bugs.webkit.org/show_bug.cgi?id=117281

Patch by Youngho Yoo <youngho33.yoo@lge.com> on 2013-09-13
Reviewed by Michael Saboff.

Fix the missing EABI_32BIT_DUMMY_ARG in FPRReg using callOperation function.

Source/JavaScriptCore:

Test 1 : fast/js/array-with-double-assign.html
Test 2 : fast/js/array-with-double-push.html

  • dfg/DFGCCallHelpers.h:

(JSC::DFG::CCallHelpers::setupArgumentsWithExecState):

  • dfg/DFGSpeculativeJIT.h:

(JSC::DFG::SpeculativeJIT::callOperation):

LayoutTests:

  • fast/js/array-with-double-assign-expected.txt: Added.
  • fast/js/array-with-double-assign.html: Added.
  • fast/js/array-with-double-push-expected.txt: Added.
  • fast/js/array-with-double-push.html: Added.
  • fast/js/script-tests/array-with-double-assign.js: Added.

(foo):

  • fast/js/script-tests/array-with-double-push.js: Added.

(foo):

Location:
trunk
Files:
8 added
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/LayoutTests/ChangeLog

    r155674 r155675  
     12013-09-13  Youngho Yoo  <youngho33.yoo@lge.com>
     2
     3        Fixed crash in V8 benchmark suite in ARM,softp,EABI environment.
     4        https://bugs.webkit.org/show_bug.cgi?id=117281
     5
     6        Reviewed by Michael Saboff.
     7
     8        Fix the missing EABI_32BIT_DUMMY_ARG in FPRReg using callOperation function.
     9
     10        * fast/js/array-with-double-assign-expected.txt: Added.
     11        * fast/js/array-with-double-assign.html: Added.
     12        * fast/js/array-with-double-push-expected.txt: Added.
     13        * fast/js/array-with-double-push.html: Added.
     14        * fast/js/script-tests/array-with-double-assign.js: Added.
     15        (foo):
     16        * fast/js/script-tests/array-with-double-push.js: Added.
     17        (foo):
     18
    1192013-09-12  Santosh Mahto  <santosh.ma@samsung.com>
    220
  • trunk/Source/JavaScriptCore/ChangeLog

    r155662 r155675  
     12013-09-13  Youngho Yoo  <youngho33.yoo@lge.com>
     2
     3        Fixed crash in V8 benchmark suite in ARM,softp,EABI environment.
     4        https://bugs.webkit.org/show_bug.cgi?id=117281
     5
     6        Reviewed by Michael Saboff.
     7
     8        Fix the missing EABI_32BIT_DUMMY_ARG in FPRReg using callOperation function.
     9
     10        Test 1 : fast/js/array-with-double-assign.html
     11        Test 2 : fast/js/array-with-double-push.html
     12
     13        * dfg/DFGCCallHelpers.h:
     14        (JSC::DFG::CCallHelpers::setupArgumentsWithExecState):
     15        * dfg/DFGSpeculativeJIT.h:
     16        (JSC::DFG::SpeculativeJIT::callOperation):
     17
    1182013-09-12  Filip Pizlo  <fpizlo@apple.com>
    219
  • trunk/Source/JavaScriptCore/dfg/DFGCCallHelpers.h

    r154403 r155675  
    499499    }
    500500
     501#if CPU(MIPS)
     502#define POKE_ARGUMENT_OFFSET 4
     503#else
     504#define POKE_ARGUMENT_OFFSET 0
     505#endif
     506
    501507#if CPU(X86_64)
    502508    ALWAYS_INLINE void setupArguments(FPRReg arg1)
     
    559565        move(GPRInfo::callFrameRegister, GPRInfo::argumentGPR0);
    560566    }
     567
     568    ALWAYS_INLINE void setupArgumentsWithExecState(TrustedImm32, FPRReg arg2, GPRReg arg3)
     569    {
     570        moveDouble(arg2, FPRInfo::argumentFPR0);
     571        move(arg3, GPRInfo::argumentGPR1);
     572        move(GPRInfo::callFrameRegister, GPRInfo::argumentGPR0);
     573    }
     574
     575    ALWAYS_INLINE void setupArgumentsWithExecState(TrustedImm32, GPRReg arg2, GPRReg arg3, FPRReg arg4)
     576    {
     577        moveDouble(arg4, FPRInfo::argumentFPR0);
     578        setupStubArguments(arg2, arg3);
     579        move(GPRInfo::callFrameRegister, GPRInfo::argumentGPR0);
     580    }
    561581#else
    562582    ALWAYS_INLINE void setupArguments(FPRReg arg1)
     
    584604        assembler().vmov(GPRInfo::argumentGPR3, GPRInfo::nonArgGPR0, arg3);
    585605        poke(GPRInfo::nonArgGPR0);
     606    }
     607
     608    ALWAYS_INLINE void setupArgumentsWithExecState(TrustedImm32 arg1, FPRReg arg2, GPRReg arg3)
     609    {
     610        poke(arg3, POKE_ARGUMENT_OFFSET);
     611        move(arg1, GPRInfo::argumentGPR1);
     612        assembler().vmov(GPRInfo::argumentGPR2, GPRInfo::argumentGPR3, arg2);
     613        move(GPRInfo::callFrameRegister, GPRInfo::argumentGPR0);
     614    }
     615
     616    ALWAYS_INLINE void setupArgumentsWithExecState(GPRReg arg1, GPRReg arg2, TrustedImm32 arg3, FPRReg arg4)
     617    {
     618        setupStubArguments(arg1, arg2);
     619        move(GPRInfo::callFrameRegister, GPRInfo::argumentGPR0);
     620        move(arg3, GPRInfo::argumentGPR3);
     621        assembler().vmov(GPRInfo::nonArgGPR0, GPRInfo::nonArgGPR1, arg4);
     622        poke(GPRInfo::nonArgGPR0, POKE_ARGUMENT_OFFSET);
     623        poke(GPRInfo::nonArgGPR1, POKE_ARGUMENT_OFFSET + 1);
    586624    }
    587625#endif // CPU(ARM_HARDFP)
     
    884922    // exactly 4 argument registers, e.g. ARMv7.
    885923#if NUMBER_OF_ARGUMENT_REGISTERS == 4
    886 
    887 #if CPU(MIPS)
    888 #define POKE_ARGUMENT_OFFSET 4
    889 #else
    890 #define POKE_ARGUMENT_OFFSET 0
    891 #endif
    892924
    893925    ALWAYS_INLINE void setupArgumentsWithExecState(GPRReg arg1, GPRReg arg2, GPRReg arg3, GPRReg arg4)
  • trunk/Source/JavaScriptCore/dfg/DFGSpeculativeJIT.h

    r155662 r155675  
    10721072    }
    10731073
    1074     JITCompiler::Call callOperation(V_DFGOperation_EOZD operation, GPRReg arg1, GPRReg arg2, FPRReg arg3)
    1075     {
    1076         m_jit.setupArgumentsWithExecState(arg1, arg2, arg3);
    1077         return appendCallWithExceptionCheck(operation);
    1078     }
    1079 
    10801074    JITCompiler::Call callOperation(V_DFGOperation_W operation, WatchpointSet* watchpointSet)
    10811075    {
     
    13071301        m_jit.setupArgumentsWithExecState(arg1, arg2.gpr());
    13081302        return appendCallWithExceptionCheckSetResult(operation, result);
     1303    }
     1304
     1305    JITCompiler::Call callOperation(V_DFGOperation_EOZD operation, GPRReg arg1, GPRReg arg2, FPRReg arg3)
     1306    {
     1307        m_jit.setupArgumentsWithExecState(arg1, arg2, arg3);
     1308        return appendCallWithExceptionCheck(operation);
    13091309    }
    13101310
     
    14561456    JITCompiler::Call callOperation(J_DFGOperation_EDA operation, GPRReg resultTag, GPRReg resultPayload, FPRReg arg1, GPRReg arg2)
    14571457    {
     1458        m_jit.setupArgumentsWithExecState(EABI_32BIT_DUMMY_ARG arg1, arg2);
     1459        return appendCallWithExceptionCheckSetResult(operation, resultPayload, resultTag);
     1460    }
     1461    JITCompiler::Call callOperation(J_DFGOperation_EJA operation, GPRReg resultTag, GPRReg resultPayload, GPRReg arg1Tag, GPRReg arg1Payload, GPRReg arg2)
     1462    {
     1463        m_jit.setupArgumentsWithExecState(EABI_32BIT_DUMMY_ARG arg1Payload, arg1Tag, arg2);
     1464        return appendCallWithExceptionCheckSetResult(operation, resultPayload, resultTag);
     1465    }
     1466    JITCompiler::Call callOperation(J_DFGOperation_EJA operation, GPRReg resultTag, GPRReg resultPayload, TrustedImm32 arg1Tag, GPRReg arg1Payload, GPRReg arg2)
     1467    {
     1468        m_jit.setupArgumentsWithExecState(EABI_32BIT_DUMMY_ARG arg1Payload, arg1Tag, arg2);
     1469        return appendCallWithExceptionCheckSetResult(operation, resultPayload, resultTag);
     1470    }
     1471    JITCompiler::Call callOperation(J_DFGOperation_EJ operation, GPRReg resultTag, GPRReg resultPayload, GPRReg arg1Tag, GPRReg arg1Payload)
     1472    {
     1473        m_jit.setupArgumentsWithExecState(EABI_32BIT_DUMMY_ARG arg1Payload, arg1Tag);
     1474        return appendCallWithExceptionCheckSetResult(operation, resultPayload, resultTag);
     1475    }
     1476    JITCompiler::Call callOperation(J_DFGOperation_EZ operation, GPRReg resultTag, GPRReg resultPayload, GPRReg arg1)
     1477    {
     1478        m_jit.setupArgumentsWithExecState(arg1);
     1479        return appendCallWithExceptionCheckSetResult(operation, resultPayload, resultTag);
     1480    }
     1481    JITCompiler::Call callOperation(J_DFGOperation_EZ operation, GPRReg resultTag, GPRReg resultPayload, int32_t arg1)
     1482    {
     1483        m_jit.setupArgumentsWithExecState(TrustedImm32(arg1));
     1484        return appendCallWithExceptionCheckSetResult(operation, resultPayload, resultTag);
     1485    }
     1486    JITCompiler::Call callOperation(J_DFGOperation_EZIcfZ operation, GPRReg resultTag, GPRReg resultPayload, int32_t arg1, InlineCallFrame* inlineCallFrame, GPRReg arg2)
     1487    {
     1488        m_jit.setupArgumentsWithExecState(TrustedImm32(arg1), TrustedImmPtr(inlineCallFrame), arg2);
     1489        return appendCallWithExceptionCheckSetResult(operation, resultPayload, resultTag);
     1490    }
     1491    JITCompiler::Call callOperation(J_DFGOperation_EZZ operation, GPRReg resultTag, GPRReg resultPayload, int32_t arg1, GPRReg arg2)
     1492    {
     1493        m_jit.setupArgumentsWithExecState(TrustedImm32(arg1), arg2);
     1494        return appendCallWithExceptionCheckSetResult(operation, resultPayload, resultTag);
     1495    }
     1496
     1497    JITCompiler::Call callOperation(P_DFGOperation_EJS operation, GPRReg result, JSValueRegs value, size_t index)
     1498    {
     1499        m_jit.setupArgumentsWithExecState(EABI_32BIT_DUMMY_ARG value.payloadGPR(), value.tagGPR(), TrustedImmPtr(index));
     1500        return appendCallSetResult(operation, result);
     1501    }
     1502
     1503    JITCompiler::Call callOperation(P_DFGOperation_EStJ operation, GPRReg result, Structure* structure, GPRReg arg2Tag, GPRReg arg2Payload)
     1504    {
     1505        m_jit.setupArgumentsWithExecState(TrustedImmPtr(structure), arg2Payload, arg2Tag);
     1506        return appendCallWithExceptionCheckSetResult(operation, result);
     1507    }
     1508
     1509    JITCompiler::Call callOperation(C_DFGOperation_EJ operation, GPRReg result, GPRReg arg1Tag, GPRReg arg1Payload)
     1510    {
     1511        m_jit.setupArgumentsWithExecState(EABI_32BIT_DUMMY_ARG arg1Payload, arg1Tag);
     1512        return appendCallWithExceptionCheckSetResult(operation, result);
     1513    }
     1514    JITCompiler::Call callOperation(S_DFGOperation_J operation, GPRReg result, GPRReg arg1Tag, GPRReg arg1Payload)
     1515    {
     1516        m_jit.setupArguments(arg1Payload, arg1Tag);
     1517        return appendCallSetResult(operation, result);
     1518    }
     1519    JITCompiler::Call callOperation(S_DFGOperation_EJ operation, GPRReg result, GPRReg arg1Tag, GPRReg arg1Payload)
     1520    {
     1521        m_jit.setupArgumentsWithExecState(EABI_32BIT_DUMMY_ARG arg1Payload, arg1Tag);
     1522        return appendCallWithExceptionCheckSetResult(operation, result);
     1523    }
     1524
     1525    JITCompiler::Call callOperation(S_DFGOperation_EJJ operation, GPRReg result, GPRReg arg1Tag, GPRReg arg1Payload, GPRReg arg2Tag, GPRReg arg2Payload)
     1526    {
     1527        m_jit.setupArgumentsWithExecState(EABI_32BIT_DUMMY_ARG arg1Payload, arg1Tag, SH4_32BIT_DUMMY_ARG arg2Payload, arg2Tag);
     1528        return appendCallWithExceptionCheckSetResult(operation, result);
     1529    }
     1530    JITCompiler::Call callOperation(J_DFGOperation_EJJ operation, GPRReg resultTag, GPRReg resultPayload, GPRReg arg1Tag, GPRReg arg1Payload, GPRReg arg2Tag, GPRReg arg2Payload)
     1531    {
     1532        m_jit.setupArgumentsWithExecState(EABI_32BIT_DUMMY_ARG arg1Payload, arg1Tag, SH4_32BIT_DUMMY_ARG arg2Payload, arg2Tag);
     1533        return appendCallWithExceptionCheckSetResult(operation, resultPayload, resultTag);
     1534    }
     1535    JITCompiler::Call callOperation(J_DFGOperation_EJJ operation, GPRReg resultTag, GPRReg resultPayload, GPRReg arg1Tag, GPRReg arg1Payload, MacroAssembler::TrustedImm32 imm)
     1536    {
     1537        m_jit.setupArgumentsWithExecState(EABI_32BIT_DUMMY_ARG arg1Payload, arg1Tag, SH4_32BIT_DUMMY_ARG imm, TrustedImm32(JSValue::Int32Tag));
     1538        return appendCallWithExceptionCheckSetResult(operation, resultPayload, resultTag);
     1539    }
     1540    JITCompiler::Call callOperation(J_DFGOperation_EJJ operation, GPRReg resultTag, GPRReg resultPayload, MacroAssembler::TrustedImm32 imm, GPRReg arg2Tag, GPRReg arg2Payload)
     1541    {
     1542        m_jit.setupArgumentsWithExecState(EABI_32BIT_DUMMY_ARG imm, TrustedImm32(JSValue::Int32Tag), SH4_32BIT_DUMMY_ARG arg2Payload, arg2Tag);
     1543        return appendCallWithExceptionCheckSetResult(operation, resultPayload, resultTag);
     1544    }
     1545
     1546    JITCompiler::Call callOperation(J_DFGOperation_ECJ operation, GPRReg resultTag, GPRReg resultPayload, GPRReg arg1, GPRReg arg2Tag, GPRReg arg2Payload)
     1547    {
     1548        m_jit.setupArgumentsWithExecState(arg1, arg2Payload, arg2Tag);
     1549        return appendCallWithExceptionCheckSetResult(operation, resultPayload, resultTag);
     1550    }
     1551    JITCompiler::Call callOperation(J_DFGOperation_ECJ operation, JSValueRegs result, GPRReg arg1, JSValueRegs arg2)
     1552    {
     1553        m_jit.setupArgumentsWithExecState(arg1, arg2.payloadGPR(), arg2.tagGPR());
     1554        return appendCallWithExceptionCheckSetResult(operation, result.payloadGPR(), result.tagGPR());
     1555    }
     1556    JITCompiler::Call callOperation(J_DFGOperation_ECC operation, GPRReg resultTag, GPRReg resultPayload, GPRReg arg1, GPRReg arg2)
     1557    {
    14581558        m_jit.setupArgumentsWithExecState(arg1, arg2);
    14591559        return appendCallWithExceptionCheckSetResult(operation, resultPayload, resultTag);
    14601560    }
    1461     JITCompiler::Call callOperation(J_DFGOperation_EJA operation, GPRReg resultTag, GPRReg resultPayload, GPRReg arg1Tag, GPRReg arg1Payload, GPRReg arg2)
    1462     {
    1463         m_jit.setupArgumentsWithExecState(EABI_32BIT_DUMMY_ARG arg1Payload, arg1Tag, arg2);
    1464         return appendCallWithExceptionCheckSetResult(operation, resultPayload, resultTag);
    1465     }
    1466     JITCompiler::Call callOperation(J_DFGOperation_EJA operation, GPRReg resultTag, GPRReg resultPayload, TrustedImm32 arg1Tag, GPRReg arg1Payload, GPRReg arg2)
    1467     {
    1468         m_jit.setupArgumentsWithExecState(EABI_32BIT_DUMMY_ARG arg1Payload, arg1Tag, arg2);
    1469         return appendCallWithExceptionCheckSetResult(operation, resultPayload, resultTag);
    1470     }
    1471     JITCompiler::Call callOperation(J_DFGOperation_EJ operation, GPRReg resultTag, GPRReg resultPayload, GPRReg arg1Tag, GPRReg arg1Payload)
    1472     {
    1473         m_jit.setupArgumentsWithExecState(EABI_32BIT_DUMMY_ARG arg1Payload, arg1Tag);
    1474         return appendCallWithExceptionCheckSetResult(operation, resultPayload, resultTag);
    1475     }
    1476     JITCompiler::Call callOperation(J_DFGOperation_EZ operation, GPRReg resultTag, GPRReg resultPayload, GPRReg arg1)
    1477     {
    1478         m_jit.setupArgumentsWithExecState(arg1);
    1479         return appendCallWithExceptionCheckSetResult(operation, resultPayload, resultTag);
    1480     }
    1481     JITCompiler::Call callOperation(J_DFGOperation_EZ operation, GPRReg resultTag, GPRReg resultPayload, int32_t arg1)
    1482     {
    1483         m_jit.setupArgumentsWithExecState(TrustedImm32(arg1));
    1484         return appendCallWithExceptionCheckSetResult(operation, resultPayload, resultTag);
    1485     }
    1486     JITCompiler::Call callOperation(J_DFGOperation_EZIcfZ operation, GPRReg resultTag, GPRReg resultPayload, int32_t arg1, InlineCallFrame* inlineCallFrame, GPRReg arg2)
    1487     {
    1488         m_jit.setupArgumentsWithExecState(TrustedImm32(arg1), TrustedImmPtr(inlineCallFrame), arg2);
    1489         return appendCallWithExceptionCheckSetResult(operation, resultPayload, resultTag);
    1490     }
    1491     JITCompiler::Call callOperation(J_DFGOperation_EZZ operation, GPRReg resultTag, GPRReg resultPayload, int32_t arg1, GPRReg arg2)
    1492     {
    1493         m_jit.setupArgumentsWithExecState(TrustedImm32(arg1), arg2);
    1494         return appendCallWithExceptionCheckSetResult(operation, resultPayload, resultTag);
    1495     }
    1496 
    1497     JITCompiler::Call callOperation(P_DFGOperation_EJS operation, GPRReg result, JSValueRegs value, size_t index)
    1498     {
    1499         m_jit.setupArgumentsWithExecState(EABI_32BIT_DUMMY_ARG value.payloadGPR(), value.tagGPR(), TrustedImmPtr(index));
    1500         return appendCallSetResult(operation, result);
    1501     }
    1502 
    1503     JITCompiler::Call callOperation(P_DFGOperation_EStJ operation, GPRReg result, Structure* structure, GPRReg arg2Tag, GPRReg arg2Payload)
    1504     {
    1505         m_jit.setupArgumentsWithExecState(TrustedImmPtr(structure), arg2Payload, arg2Tag);
    1506         return appendCallWithExceptionCheckSetResult(operation, result);
    1507     }
    1508 
    1509     JITCompiler::Call callOperation(C_DFGOperation_EJ operation, GPRReg result, GPRReg arg1Tag, GPRReg arg1Payload)
    1510     {
    1511         m_jit.setupArgumentsWithExecState(EABI_32BIT_DUMMY_ARG arg1Payload, arg1Tag);
    1512         return appendCallWithExceptionCheckSetResult(operation, result);
    1513     }
    1514     JITCompiler::Call callOperation(S_DFGOperation_J operation, GPRReg result, GPRReg arg1Tag, GPRReg arg1Payload)
    1515     {
    1516         m_jit.setupArguments(arg1Payload, arg1Tag);
    1517         return appendCallSetResult(operation, result);
    1518     }
    1519     JITCompiler::Call callOperation(S_DFGOperation_EJ operation, GPRReg result, GPRReg arg1Tag, GPRReg arg1Payload)
    1520     {
    1521         m_jit.setupArgumentsWithExecState(EABI_32BIT_DUMMY_ARG arg1Payload, arg1Tag);
    1522         return appendCallWithExceptionCheckSetResult(operation, result);
    1523     }
    1524 
    1525     JITCompiler::Call callOperation(S_DFGOperation_EJJ operation, GPRReg result, GPRReg arg1Tag, GPRReg arg1Payload, GPRReg arg2Tag, GPRReg arg2Payload)
    1526     {
    1527         m_jit.setupArgumentsWithExecState(EABI_32BIT_DUMMY_ARG arg1Payload, arg1Tag, SH4_32BIT_DUMMY_ARG arg2Payload, arg2Tag);
    1528         return appendCallWithExceptionCheckSetResult(operation, result);
    1529     }
    1530     JITCompiler::Call callOperation(J_DFGOperation_EJJ operation, GPRReg resultTag, GPRReg resultPayload, GPRReg arg1Tag, GPRReg arg1Payload, GPRReg arg2Tag, GPRReg arg2Payload)
    1531     {
    1532         m_jit.setupArgumentsWithExecState(EABI_32BIT_DUMMY_ARG arg1Payload, arg1Tag, SH4_32BIT_DUMMY_ARG arg2Payload, arg2Tag);
    1533         return appendCallWithExceptionCheckSetResult(operation, resultPayload, resultTag);
    1534     }
    1535     JITCompiler::Call callOperation(J_DFGOperation_EJJ operation, GPRReg resultTag, GPRReg resultPayload, GPRReg arg1Tag, GPRReg arg1Payload, MacroAssembler::TrustedImm32 imm)
    1536     {
    1537         m_jit.setupArgumentsWithExecState(EABI_32BIT_DUMMY_ARG arg1Payload, arg1Tag, SH4_32BIT_DUMMY_ARG imm, TrustedImm32(JSValue::Int32Tag));
    1538         return appendCallWithExceptionCheckSetResult(operation, resultPayload, resultTag);
    1539     }
    1540     JITCompiler::Call callOperation(J_DFGOperation_EJJ operation, GPRReg resultTag, GPRReg resultPayload, MacroAssembler::TrustedImm32 imm, GPRReg arg2Tag, GPRReg arg2Payload)
    1541     {
    1542         m_jit.setupArgumentsWithExecState(EABI_32BIT_DUMMY_ARG imm, TrustedImm32(JSValue::Int32Tag), SH4_32BIT_DUMMY_ARG arg2Payload, arg2Tag);
    1543         return appendCallWithExceptionCheckSetResult(operation, resultPayload, resultTag);
    1544     }
    1545 
    1546     JITCompiler::Call callOperation(J_DFGOperation_ECJ operation, GPRReg resultTag, GPRReg resultPayload, GPRReg arg1, GPRReg arg2Tag, GPRReg arg2Payload)
    1547     {
    1548         m_jit.setupArgumentsWithExecState(arg1, arg2Payload, arg2Tag);
    1549         return appendCallWithExceptionCheckSetResult(operation, resultPayload, resultTag);
    1550     }
    1551     JITCompiler::Call callOperation(J_DFGOperation_ECJ operation, JSValueRegs result, GPRReg arg1, JSValueRegs arg2)
    1552     {
    1553         m_jit.setupArgumentsWithExecState(arg1, arg2.payloadGPR(), arg2.tagGPR());
    1554         return appendCallWithExceptionCheckSetResult(operation, result.payloadGPR(), result.tagGPR());
    1555     }
    1556     JITCompiler::Call callOperation(J_DFGOperation_ECC operation, GPRReg resultTag, GPRReg resultPayload, GPRReg arg1, GPRReg arg2)
    1557     {
    1558         m_jit.setupArgumentsWithExecState(arg1, arg2);
    1559         return appendCallWithExceptionCheckSetResult(operation, resultPayload, resultTag);
     1561
     1562    JITCompiler::Call callOperation(V_DFGOperation_EOZD operation, GPRReg arg1, GPRReg arg2, FPRReg arg3)
     1563    {
     1564        m_jit.setupArgumentsWithExecState(arg1, arg2, EABI_32BIT_DUMMY_ARG arg3);
     1565        return appendCallWithExceptionCheck(operation);
    15601566    }
    15611567
Note: See TracChangeset for help on using the changeset viewer.