Changeset 251556 in webkit for trunk/Source/JavaScriptCore/llint/LowLevelInterpreter64.asm
- Timestamp:
- Oct 24, 2019, 1:27:38 PM (6 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/JavaScriptCore/llint/LowLevelInterpreter64.asm
r251106 r251556 330 330 op(handleUncaughtException, macro () 331 331 loadp Callee[cfr], t3 332 andp MarkedBlockMask, t3 333 loadp MarkedBlockFooterOffset + MarkedBlock::Footer::m_vm[t3], t3 332 convertCalleeToVM(t3) 334 333 restoreCalleeSavesFromVMEntryFrameCalleeSavesBuffer(t3, t0) 335 334 storep 0, VM::callFrameForCatch[t3] … … 682 681 end 683 682 684 macro branchIfException(label)685 loadp Callee[cfr], t3686 andp MarkedBlockMask, t3687 loadp MarkedBlockFooterOffset + MarkedBlock::Footer::m_vm[t3], t3688 btpz VM::m_exception[t3], .noException689 jmp label690 .noException:691 end692 693 683 # Instruction implementations 684 694 685 _llint_op_enter: 695 686 traceExecution() … … 2069 2060 # and have set VM::targetInterpreterPCForThrow. 2070 2061 loadp Callee[cfr], t3 2071 andp MarkedBlockMask, t3 2072 loadp MarkedBlockFooterOffset + MarkedBlock::Footer::m_vm[t3], t3 2062 convertCalleeToVM(t3) 2073 2063 restoreCalleeSavesFromVMEntryFrameCalleeSavesBuffer(t3, t0) 2074 2064 loadp VM::callFrameForCatch[t3], cfr … … 2087 2077 2088 2078 .isCatchableException: 2089 loadp Callee[cfr], t3 2090 andp MarkedBlockMask, t3 2091 loadp MarkedBlockFooterOffset + MarkedBlock::Footer::m_vm[t3], t3 2079 loadp CodeBlock[cfr], t3 2080 loadp CodeBlock::m_vm[t3], t3 2092 2081 2093 2082 loadp VM::m_exception[t3], t0 … … 2119 2108 op(llint_throw_from_slow_path_trampoline, macro () 2120 2109 loadp Callee[cfr], t1 2121 andp MarkedBlockMask, t1 2122 loadp MarkedBlockFooterOffset + MarkedBlock::Footer::m_vm[t1], t1 2110 convertCalleeToVM(t1) 2123 2111 copyCalleeSavesToVMEntryFrameCalleeSavesBuffer(t1, t2) 2124 2112 … … 2129 2117 # This essentially emulates the JIT's throwing protocol. 2130 2118 loadp Callee[cfr], t1 2131 andp MarkedBlockMask, t1 2132 loadp MarkedBlockFooterOffset + MarkedBlock::Footer::m_vm[t1], t1 2119 convertCalleeToVM(t1) 2133 2120 jmp VM::targetMachinePCForThrow[t1], ExceptionHandlerPtrTag 2134 2121 end) … … 2142 2129 2143 2130 macro nativeCallTrampoline(executableOffsetToFunction) 2144 2145 2131 functionPrologue() 2146 2132 storep 0, CodeBlock[cfr] 2147 loadp Callee[cfr], t02148 andp MarkedBlockMask, t0, t12149 loadp MarkedBlockFooterOffset + MarkedBlock::Footer::m_vm[t1], t12150 storep cfr, VM::topCallFrame[t1]2151 if ARM64 or ARM64E or C_LOOP or C_LOOP_WIN2152 storep lr, ReturnPC[cfr]2153 end2154 move cfr, a12155 2133 loadp Callee[cfr], a0 2156 2134 loadp JSFunction::m_executable[a0], a2 2157 2135 loadp JSFunction::m_globalObject[a0], a0 2136 loadp JSGlobalObject::m_vm[a0], a1 2137 storep cfr, VM::topCallFrame[a1] 2138 if ARM64 or ARM64E or C_LOOP or C_LOOP_WIN 2139 storep lr, ReturnPC[cfr] 2140 end 2141 move cfr, a1 2158 2142 checkStackPointerAlignment(t3, 0xdead0001) 2159 2143 if C_LOOP or C_LOOP_WIN … … 2170 2154 2171 2155 loadp Callee[cfr], t3 2172 andp MarkedBlockMask, t32173 loadp MarkedBlockFooterOffset + MarkedBlock::Footer::m_vm[t3], t32156 loadp JSFunction::m_globalObject[t3], t3 2157 loadp JSGlobalObject::m_vm[t3], t3 2174 2158 2175 2159 btpnz VM::m_exception[t3], .handleException … … 2186 2170 functionPrologue() 2187 2171 storep 0, CodeBlock[cfr] 2188 loadp Callee[cfr], t02189 andp MarkedBlockMask, t0, t12190 loadp MarkedBlockFooterOffset + MarkedBlock::Footer::m_vm[t1], t12191 storep cfr, VM::topCallFrame[ t1]2172 loadp Callee[cfr], a2 2173 loadp InternalFunction::m_globalObject[a2], a0 2174 loadp JSGlobalObject::m_vm[a0], a1 2175 storep cfr, VM::topCallFrame[a1] 2192 2176 if ARM64 or ARM64E or C_LOOP or C_LOOP_WIN 2193 2177 storep lr, ReturnPC[cfr] 2194 2178 end 2195 2179 move cfr, a1 2196 loadp Callee[cfr], a22197 loadp InternalFunction::m_globalObject[a2], a02198 2180 checkStackPointerAlignment(t3, 0xdead0001) 2199 2181 if C_LOOP or C_LOOP_WIN … … 2210 2192 2211 2193 loadp Callee[cfr], t3 2212 andp MarkedBlockMask, t32213 loadp MarkedBlockFooterOffset + MarkedBlock::Footer::m_vm[t3], t32194 loadp InternalFunction::m_globalObject[t3], t3 2195 loadp JSGlobalObject::m_vm[t3], t3 2214 2196 2215 2197 btpnz VM::m_exception[t3], .handleException
Note:
See TracChangeset
for help on using the changeset viewer.