Home | History | Annotate | Download | only in jit

Lines Matching refs:regT0

53     // regT0 holds payload, regT1 holds tag
56 Jump string_failureCases2 = branchPtr(NotEqual, Address(regT0), ImmPtr(m_globalData->jsStringVPtr));
59 load32(Address(regT0, OBJECT_OFFSETOF(JSString, m_stringLength)), regT2);
62 move(regT2, regT0);
72 // regT0 holds callee, regT1 holds argCount. regT2 will hold the FunctionExecutable.
74 loadPtr(Address(regT0, OBJECT_OFFSETOF(JSFunction, m_executable)), regT2);
82 loadPtr(Address(regT0, OBJECT_OFFSETOF(JSFunction, m_executable)), regT2);
107 jump(regT0);
111 // regT0 holds callee, regT1 holds argCount. regT2 will hold the FunctionExecutable.
113 loadPtr(Address(regT0, OBJECT_OFFSETOF(JSFunction, m_executable)), regT2);
123 loadPtr(Address(regT0, OBJECT_OFFSETOF(JSFunction, m_executable)), regT2);
135 loadPtr(Address(regT0, OBJECT_OFFSETOF(JSFunction, m_executable)), regT2);
141 loadPtr(Address(regT2, OBJECT_OFFSETOF(FunctionExecutable, m_jitCode)), regT0);
142 jump(regT0);
146 preserveReturnAddressAfterCall(regT0);
147 emitPutToCallFrameHeader(regT0, RegisterFile::ReturnPC); // Push return address
156 emitGetFromCallFrameHeader32(RegisterFile::ArgumentCount, regT0);
207 subPtr(Imm32(1), regT0); // Don't include 'this' in argcount
210 storePtr(regT0, Address(stackPointerRegister, OBJECT_OFFSETOF(NativeCallFrameStructure, args) + OBJECT_OFFSETOF(ArgList, m_argCount)));
215 // Calculate start of arguments as callframe header - sizeof(Register) * argcount (regT0)
216 mul32(Imm32(sizeof(Register)), regT0, regT0);
217 subPtr(regT0, regT1);
221 addPtr(Imm32(OBJECT_OFFSETOF(NativeCallFrameStructure, args)), stackPointerRegister, regT0);
222 storePtr(regT0, Address(stackPointerRegister, OBJECT_OFFSETOF(NativeCallFrameStructure, argPointer)));
244 emitLoad(0, regT1, regT0, X86Registers::eax);
256 emitGetFromCallFrameHeader32(RegisterFile::ArgumentCount, regT0);
263 subPtr(Imm32(1), regT0); // Don't include 'this' in argcount
266 storePtr(regT0, Address(stackPointerRegister, OBJECT_OFFSETOF(ArgList, m_argCount)));
273 mul32(Imm32(sizeof(Register)), regT0, regT0);
274 subPtr(regT0, regT1);
287 move(stackPointerRegister, regT0);
309 load32(Address(stackPointerRegister, 16), regT0);
397 emitLoad(src, regT1, regT0);
398 emitStore(dst, regT1, regT0);
399 map(m_bytecodeIndex + OPCODE_LENGTH(op_mov), dst, regT1, regT0);
408 emitLoad(currentInstruction[1].u.operand, regT1, regT0);
428 emitLoad(op2, regT1, regT0);
430 addJump(branch32(GreaterThanOrEqual, regT0, Imm32(getConstantOperand(op1).asInt32())), target);
435 emitLoad(op1, regT1, regT0);
437 addJump(branch32(LessThanOrEqual, regT0, Imm32(getConstantOperand(op2).asInt32())), target);
441 emitLoad2(op1, regT1, regT0, op2, regT3, regT2);
444 addJump(branch32(LessThanOrEqual, regT0, regT2), target);
461 emitJumpSlowToHot(branchTest32(NonZero, regT0), target);
477 // We use regT0 for baseVal since we will be done with this first, and we can then use it for the result.
479 emitLoadPayload(baseVal, regT0);
488 loadPtr(Address(regT0, OBJECT_OFFSETOF(JSCell, m_structure)), regT0);
489 addSlowCase(branchTest32(Zero, Address(regT0, OBJECT_OFFSETOF(Structure, m_typeInfo.m_flags)), Imm32(ImplementsDefaultHasInstance)));
494 move(Imm32(JSValue::TrueTag), regT0);
505 move(Imm32(JSValue::FalseTag), regT0);
509 emitStoreBool(dst, regT0);
547 emitLoad(index, regT1, regT0, regT2);
548 emitStore(dst, regT1, regT0);
549 map(m_bytecodeIndex + OPCODE_LENGTH(op_get_global_var), dst, regT1, regT0);
559 emitLoad(value, regT1, regT0);
562 emitStore(index, regT1, regT0, regT2);
563 map(m_bytecodeIndex + OPCODE_LENGTH(op_put_global_var), value, regT1, regT0);
580 emitLoad(index, regT1, regT0, regT2);
581 emitStore(dst, regT1, regT0);
582 map(m_bytecodeIndex + OPCODE_LENGTH(op_get_scoped_var), dst, regT1, regT0);
591 emitLoad(value, regT1, regT0);
601 emitStore(index, regT1, regT0, regT2);
602 map(m_bytecodeIndex + OPCODE_LENGTH(op_put_scoped_var), value, regT1, regT0);
637 emitLoad(src, regT1, regT0);
640 addSlowCase(branchPtr(NotEqual, Address(regT0), ImmPtr(m_globalData->jsStringVPtr)));
644 emitStore(dst, regT1, regT0);
645 map(m_bytecodeIndex + OPCODE_LENGTH(op_to_primitive), dst, regT1, regT0);
655 stubCall.addArgument(regT1, regT0);
694 move(ImmPtr(globalObject), regT0);
696 addSlowCase(branchPtr(NotEqual, regT1, Address(regT0, OBJECT_OFFSETOF(JSCell, m_structure))));
699 loadPtr(Address(regT0, OBJECT_OFFSETOF(JSGlobalObject, m_externalStorage)), regT2);
701 load32(BaseIndex(regT2, regT3, TimesEight), regT0); // payload
703 emitStore(dst, regT1, regT0);
704 map(m_bytecodeIndex + OPCODE_LENGTH(op_resolve_global), dst, regT1, regT0);
728 emitLoadTag(src, regT0);
730 xor32(Imm32(JSValue::FalseTag), regT0);
731 addSlowCase(branchTest32(NonZero, regT0, Imm32(~1)));
732 xor32(Imm32(JSValue::TrueTag), regT0);
734 emitStoreBool(dst, regT0, (dst == src));
754 emitLoad(cond, regT1, regT0);
760 Jump isTrue2 = branch32(NotEqual, regT0, Imm32(0));
787 emitJumpSlowToHot(branchTest32(Zero, regT0), target); // Inverted.
795 emitLoad(cond, regT1, regT0);
801 Jump isFalse2 = branch32(Equal, regT0, Imm32(0));
828 emitJumpSlowToHot(branchTest32(NonZero, regT0), target);
836 emitLoad(src, regT1, regT0);
841 regT0, OBJECT_OFFSETOF(JSCell, m_structure)), regT2);
863 emitLoad(src, regT1, regT0);
868 loadPtr(Address(regT0, OBJECT_OFFSETOF(JSCell, m_structure)), regT2);
891 emitLoad(src, regT1, regT0);
893 addJump(branchPtr(NotEqual, regT0, ImmPtr(ptr)), target);
916 emitLoad2(src1, regT1, regT0, src2, regT3, regT2);
921 set8(Equal, regT0, regT2, regT0);
922 or32(Imm32(JSValue::FalseTag), regT0);
924 emitStoreBool(dst, regT0);
939 genericCase.append(branchPtr(NotEqual, Address(regT0), ImmPtr(m_globalData->jsStringVPtr)));
944 stubCallEqStrings.addArgument(regT0);
955 stubCallEq.call(regT0);
958 or32(Imm32(JSValue::FalseTag), regT0);
959 emitStoreBool(dst, regT0);
968 emitLoad2(src1, regT1, regT0, src2, regT3, regT2);
973 set8(NotEqual, regT0, regT2, regT0);
974 or32(Imm32(JSValue::FalseTag), regT0);
976 emitStoreBool(dst, regT0);
989 genericCase.append(branchPtr(NotEqual, Address(regT0), ImmPtr(m_globalData->jsStringVPtr)));
994 stubCallEqStrings.addArgument(regT0);
996 stubCallEqStrings.call(regT0);
1003 stubCallEq.addArgument(regT1, regT0);
1005 stubCallEq.call(regT0);
1008 xor32(Imm32(0x1), regT0);
1009 or32(Imm32(JSValue::FalseTag), regT0);
1010 emitStoreBool(dst, regT0);
1019 emitLoadTag(src1, regT0);
1024 move(regT0, regT2);
1030 set8(Equal, regT0, regT1, regT0);
1032 set8(NotEqual, regT0, regT1, regT0);
1034 or32(Imm32(JSValue::FalseTag), regT0);
1036 emitStoreBool(dst, regT0);
1084 emitLoad(src, regT1, regT0);
1087 loadPtr(Address(regT0, OBJECT_OFFSETOF(JSCell, m_structure)), regT1);
1110 emitLoad(src, regT1, regT0);
1113 loadPtr(Address(regT0, OBJECT_OFFSETOF(JSCell, m_structure)), regT1);
1177 emitLoad(base, regT1, regT0);
1181 loadPtr(Address(regT0, OBJECT_OFFSETOF(JSCell, m_structure)), regT2);
1189 getPnamesStubCall.addArgument(regT0);
1191 load32(Address(regT0, OBJECT_OFFSETOF(JSPropertyNameIterator, m_jsStringsSize)), regT3);
1200 toObjectStubCall.addArgument(regT1, regT0);
1219 load32(addressFor(i), regT0);
1220 Jump end = branch32(Equal, regT0, addressFor(size));
1225 load32(BaseIndex(regT2, regT0, TimesEight), regT2);
1230 add32(Imm32(1), regT0);
1231 store32(regT0, addressFor(i));
1234 loadPtr(addressFor(base), regT0);
1237 loadPtr(Address(regT0, OBJECT_OFFSETOF(JSCell, m_structure)), regT2);
1260 stubCall.addArgument(regT0);
1265 addJump(branchTest32(NonZero, regT0), target);
1289 emitLoad(src, regT1, regT0);
1296 emitStore(dst, regT1, regT0);
1297 map(m_bytecodeIndex + OPCODE_LENGTH(op_to_jsnumber), dst, regT1, regT0);
1307 stubCall.addArgument(regT1, regT0);
1330 emitStore(exception, regT1, regT0);
1331 map(m_bytecodeIndex + OPCODE_LENGTH(op_catch), exception, regT1, regT0);
1357 jump(regT0);
1375 jump(regT0);
1392 jump(regT0);
1456 emitLoad(thisRegister, regT1, regT0);
1460 loadPtr(Address(regT0, OBJECT_OFFSETOF(JSCell, m_structure)), regT2);
1463 map(m_bytecodeIndex + OPCODE_LENGTH(op_convert_this), thisRegister, regT1, regT0);
1474 stubCall.addArgument(regT1, regT0);
1516 Jump string_failureCases1 = emitJumpIfNotJSCell(regT0);
1517 Jump string_failureCases2 = branchPtr(NotEqual, Address(regT0), ImmPtr(m_globalData->jsStringVPtr));
1520 load32(Address(regT0, OBJECT_OFFSETOF(JSString, m_stringLength)), regT0);
1522 Jump string_failureCases3 = branch32(Above, regT0, Imm32(JSImmediate::maxImmediateInt));
1524 // regT0 contains a 64 bit value (is positive, is zero extended) so we don't need sign extend here.
1525 emitFastArithIntToImmNoCheck(regT0, regT0);
1534 // regT0 holds callee, regT1 holds argCount. regT2 will hold the FunctionExecutable.
1536 loadPtr(Address(regT0, OBJECT_OFFSETOF(JSFunction, m_executable)), regT2);
1544 loadPtr(Address(regT0, OBJECT_OFFSETOF(JSFunction, m_executable)), regT2);
1568 jump(regT0);
1571 // regT0 holds callee, regT1 holds argCount. regT2 will hold the FunctionExecutable.
1573 loadPtr(Address(regT0, OBJECT_OFFSETOF(JSFunction, m_executable)), regT2);
1583 loadPtr(Address(regT0, OBJECT_OFFSETOF(JSFunction, m_executable)), regT2);
1595 loadPtr(Address(regT0, OBJECT_OFFSETOF(JSFunction, m_executable)), regT2);
1601 loadPtr(Address(regT2, OBJECT_OFFSETOF(FunctionExecutable, m_jitCode)), regT0);
1602 jump(regT0);
1605 preserveReturnAddressAfterCall(regT0);
1606 emitPutToCallFrameHeader(regT0, RegisterFile::ReturnPC); // Push return address
1652 emitGetFromCallFrameHeader32(RegisterFile::ArgumentCount, regT0);
1694 subPtr(Imm32(1), regT0); // Don't include 'this' in argcount
1697 storePtr(regT0, Address(stackPointerRegister, OBJECT_OFFSETOF(NativeCallFrameStructure, args) + OBJECT_OFFSETOF(ArgList, m_argCount)));
1702 // Calculate start of arguments as callframe header - sizeof(Register) * argcount (regT0)
1703 mul32(Imm32(sizeof(Register)), regT0, regT0);
1704 subPtr(regT0, regT1);
1708 addPtr(Imm32(OBJECT_OFFSETOF(NativeCallFrameStructure, args)), stackPointerRegister, regT0);
1709 storePtr(regT0, Address(stackPointerRegister, OBJECT_OFFSETOF(NativeCallFrameStructure, argPointer)));
1744 emitGetFromCallFrameHeader32(RegisterFile::ArgumentCount, regT0);
1751 subPtr(Imm32(1), regT0); // Don't include 'this' in argcount
1754 storePtr(regT0, Address(stackPointerRegister, OBJECT_OFFSETOF(ArgList, m_argCount)));
1761 mul32(Imm32(sizeof(Register)), regT0, regT0);
1762 subPtr(regT0, regT1);
1774 move(callFrameRegister, regT0);
1866 emitGetVirtualRegister(src, regT0);
1869 // Perform the copy via regT1; do not disturb any mapping in regT0.
1900 emitGetVirtualRegister(op1, regT0);
1901 emitJumpSlowCaseIfNotImmediateInteger(regT0);
1907 addJump(branch32(LessThanOrEqual, regT0, Imm32(op2imm)), target);
1909 emitGetVirtualRegisters(op1, regT0, op2, regT1);
1910 emitJumpSlowCaseIfNotImmediateInteger(regT0);
1912 addJump(branch32(LessThanOrEqual, regT0, regT1), target);
1929 // We use regT0 for baseVal since we will be done with this first, and we can then use it for the result.
1931 emitGetVirtualRegister(baseVal, regT0);
1936 emitJumpSlowCaseIfNotJSCell(regT0, baseVal);
1940 loadPtr(Address(regT0, OBJECT_OFFSETOF(JSCell, m_structure)), regT0);
1941 addSlowCase(branchTest32(Zero, Address(regT0, OBJECT_OFFSETOF(Structure, m_typeInfo.m_flags)), Imm32(ImplementsDefaultHasInstance)));
1946 move(ImmPtr(JSValue::encode(jsBoolean(true))), regT0);
1957 move(ImmPtr(JSValue::encode(jsBoolean(false))), regT0);
2006 move(ImmPtr(globalObject), regT0);
2007 emitGetVariableObjectRegister(regT0, currentInstruction[3].u.operand, regT0);
2015 move(ImmPtr(globalObject), regT0);
2016 emitPutVariableObjectRegister(regT1, regT0, currentInstruction[2].u.operand);
2023 emitGetFromCallFrameHeaderPtr(RegisterFile::ScopeChain, regT0);
2025 loadPtr(Address(regT0, OBJECT_OFFSETOF(ScopeChainNode, next)), regT0);
2027 loadPtr(Address(regT0, OBJECT_OFFSETOF(ScopeChainNode, object)), regT0);
2028 emitGetVariableObjectRegister(regT0, currentInstruction[2].u.operand, regT0);
2037 emitGetVirtualRegister(currentInstruction[3].u.operand, regT0);
2042 emitPutVariableObjectRegister(regT0, regT1, currentInstruction[1].u.operand);
2098 emitGetVirtualRegister(currentInstruction[1].u.operand, regT0);
2100 emitJumpSlowCaseIfNotJSCell(regT0);
2101 loadPtr(Address(regT0, OBJECT_OFFSETOF(JSCell, m_structure)), regT2);
2111 emitGetVirtualRegister(src, regT0);
2113 Jump isImm = emitJumpIfNotJSCell(regT0);
2114 addSlowCase(branchPtr(NotEqual, Address(regT0), ImmPtr(m_globalData->jsStringVPtr)));
2156 move(ImmPtr(globalObject), regT0);
2158 Jump noMatch = branchPtr(NotEqual, regT1, Address(regT0, OBJECT_OFFSETOF(JSCell, m_structure))); // Structures don't match
2162 loadPtr(Address(regT0, OBJECT_OFFSETOF(JSGlobalObject, m_externalStorage)), regT0);
2164 loadPtr(BaseIndex(regT0, regT1, ScalePtr), regT0);
2180 emitGetVirtualRegister(currentInstruction[2].u.operand, regT0);
2181 xorPtr(Imm32(static_cast<int32_t>(JSImmediate::FullTagTypeBool)), regT0);
2182 addSlowCase(branchTestPtr(NonZero, regT0, Imm32(static_cast<int32_t>(~JSImmediate::ExtendedPayloadBitBoolValue))));
2183 xorPtr(Imm32(static_cast<int32_t>(JSImmediate::FullTagTypeBool | JSImmediate::ExtendedPayloadBitBoolValue)), regT0);
2190 emitGetVirtualRegister(currentInstruction[1].u.operand, regT0);
2192 addJump(branchPtr(Equal, regT0, ImmPtr(JSValue::encode(jsNumber(m_globalData, 0)))), target);
2193 Jump isNonZero = emitJumpIfImmediateInteger(regT0);
2195 addJump(branchPtr(Equal, regT0, ImmPtr(JSValue::encode(jsBoolean(false)))), target);
2196 addSlowCase(branchPtr(NotEqual, regT0, ImmPtr(JSValue::encode(jsBoolean(true)))));
2206 emitGetVirtualRegister(src, regT0);
2207 Jump isImmediate = emitJumpIfNotJSCell(regT0);
2210 loadPtr(Address(regT0, OBJECT_OFFSETOF(JSCell, m_structure)), regT2);
2216 andPtr(Imm32(~JSImmediate::ExtendedTagBitUndefined), regT0);
2217 addJump(branchPtr(Equal, regT0, ImmPtr(JSValue::encode(jsNull()))), target);
2227 emitGetVirtualRegister(src, regT0);
2228 Jump isImmediate = emitJumpIfNotJSCell(regT0);
2231 loadPtr(Address(regT0, OBJECT_OFFSETOF(JSCell, m_structure)), regT2);
2237 andPtr(Imm32(~JSImmediate::ExtendedTagBitUndefined), regT0);
2238 addJump(branchPtr(NotEqual, regT0, ImmPtr(JSValue::encode(jsNull()))), target);
2250 emitGetVirtualRegister(src, regT0);
2251 addJump(branchPtr(NotEqual, regT0, ImmPtr(JSValue::encode(JSValue(ptr)))), target);
2275 emitGetVirtualRegisters(currentInstruction[2].u.operand, regT0, currentInstruction[3].u.operand, regT1);
2276 emitJumpSlowCaseIfNotImmediateIntegers(regT0, regT1, regT2);
2277 set32(Equal, regT1, regT0, regT0);
2278 emitTagAsBoolImmediate(regT0);
2284 emitGetVirtualRegister(currentInstruction[2].u.operand, regT0);
2285 emitJumpSlowCaseIfNotImmediateInteger(regT0);
2287 not32(regT0);
2288 emitFastArithIntToImmNoCheck(regT0, regT0);
2290 xorPtr(Imm32(~JSImmediate::TagTypeNumber), regT0);
2313 emitGetVirtualRegister(currentInstruction[1].u.operand, regT0);
2315 Jump isZero = branchPtr(Equal, regT0, ImmPtr(JSValue::encode(jsNumber(m_globalData, 0))));
2316 addJump(emitJumpIfImmediateInteger(regT0), target);
2318 addJump(branchPtr(Equal, regT0, ImmPtr(JSValue::encode(jsBoolean(true)))), target);
2319 addSlowCase(branchPtr(NotEqual, regT0, ImmPtr(JSValue::encode(jsBoolean(false)))));
2327 emitGetVirtualRegisters(currentInstruction[2].u.operand, regT0, currentInstruction[3].u.operand, regT1);
2328 emitJumpSlowCaseIfNotImmediateIntegers(regT0, regT1, regT2);
2329 set32(NotEqual, regT1, regT0, regT0);
2330 emitTagAsBoolImmediate(regT0);
2338 emitGetVirtualRegisters(currentInstruction[2].u.operand, regT0, currentInstruction[3].u.operand, regT1);
2339 emitJumpSlowCaseIfNotImmediateIntegers(regT0, regT1, regT2);
2340 xorPtr(regT1, regT0);
2341 emitFastArithReTagImmediate(regT0, regT0);
2354 emitGetVirtualRegisters(currentInstruction[2].u.operand, regT0, currentInstruction[3].u.operand, regT1);
2355 emitJumpSlowCaseIfNotImmediateIntegers(regT0, regT1, regT2);
2356 orPtr(regT1, regT0);
2365 ASSERT(regT0 == returnValueRegister);
2383 emitGetVirtualRegister(base, regT0);
2385 isNotObject.append(emitJumpIfNotJSCell(regT0));
2387 loadPtr(Address(regT0, OBJECT_OFFSETOF(JSCell, m_structure)), regT2);
2395 getPnamesStubCall.addArgument(regT0);
2397 load32(Address(regT0, OBJECT_OFFSETOF(JSPropertyNameIterator, m_jsStringsSize)), regT3);
2403 move(regT0, regT1);
2408 toObjectStubCall.addArgument(regT0);
2427 load32(addressFor(i), regT0);
2428 Jump end = branch32(Equal, regT0, addressFor(size));
2435 loadPtr(BaseIndex(regT2, regT0, TimesEight), regT2);
2437 loadPtr(BaseIndex(regT2, regT0, TimesFour), regT2);
2443 add32(Imm32(1), regT0);
2444 store32(regT0, addressFor(i));
2447 emitGetVirtualRegister(base, regT0);
2450 loadPtr(Address(regT0, OBJECT_OFFSETOF(JSCell, m_structure)), regT2);
2473 stubCall.addArgument(regT0);
2478 addJump(branchTest32(NonZero, regT0), target);
2503 emitGetVirtualRegisters(src1, regT0, src2, regT1);
2506 move(regT0, regT2);
2512 set32(Equal, regT1, regT0, regT0);
2514 set32(NotEqual, regT1, regT0, regT0);
2515 emitTagAsBoolImmediate(regT0);
2533 emitGetVirtualRegister(srcVReg, regT0);
2535 Jump wasImmediate = emitJumpIfImmediateInteger(regT0);
2537 emitJumpSlowCaseIfNotJSCell(regT0, srcVReg);
2538 loadPtr(Address(regT0, OBJECT_OFFSETOF(JSCell, m_structure)), regT2);
2585 jump(regT0);
2603 jump(regT0);
2620 jump(regT0);
2646 emitGetVirtualRegister(src1, regT0);
2647 Jump isImmediate = emitJumpIfNotJSCell(regT0);
2649 loadPtr(Address(regT0, OBJECT_OFFSETOF(JSCell, m_structure)), regT2);
2650 setTest32(NonZero, Address(regT2, OBJECT_OFFSETOF(Structure, m_typeInfo.m_flags)), Imm32(MasqueradesAsUndefined), regT0);
2656 andPtr(Imm32(~JSImmediate::ExtendedTagBitUndefined), regT0);
2657 setPtr(Equal, regT0, Imm32(JSImmediate::FullTagTypeNull), regT0);
2661 emitTagAsBoolImmediate(regT0);
2671 emitGetVirtualRegister(src1, regT0);
2672 Jump isImmediate = emitJumpIfNotJSCell(regT0);
2674 loadPtr(Address(regT0, OBJECT_OFFSETOF(JSCell, m_structure)), regT2);
2675 setTest32(Zero, Address(regT2, OBJECT_OFFSETOF(Structure, m_typeInfo.m_flags)), Imm32(MasqueradesAsUndefined), regT0);
2681 andPtr(Imm32(~JSImmediate::ExtendedTagBitUndefined), regT0);
2682 setPtr(NotEqual, regT0, Imm32(JSImmediate::FullTagTypeNull), regT0);
2686 emitTagAsBoolImmediate(regT0);
2731 emitGetVirtualRegister(currentInstruction[1].u.operand, regT0);
2733 emitJumpSlowCaseIfNotJSCell(regT0);
2734 loadPtr(Address(regT0, OBJECT_OFFSETOF(JSCell, m_structure)), regT1);
2770 stubCall.addArgument(regT0);
2778 emitGetVirtualRegister(currentInstruction[2].u.operand, regT0);
2787 stubCall.addArgument(regT0);
2816 stubCall.addArgument(regT0);
2819 emitJumpSlowToHot(branchTest32(NonZero, regT0), target);
2824 stubCall.addArgument(regT0);
2827 emitJumpSlowToHot(branchTest32(NonZero, regT0), target);
2843 stubPutByValCall.addArgument(regT0);
2852 xorPtr(Imm32(static_cast<int32_t>(JSImmediate::FullTagTypeBool)), regT0);
2854 stubCall.addArgument(regT0);
2862 stubCall.addArgument(regT0);
2864 emitJumpSlowToHot(branchTest32(Zero, regT0), currentInstruction[2].u.operand); // inverted!
2871 stubCall.addArgument(regT0);
2879 stubCall.addArgument(regT0);
2881 emitJumpSlowToHot(branchTest32(NonZero, regT0), currentInstruction[2].u.operand);
2888 stubCall.addArgument(regT0);
2897 stubCall.addArgument(regT0);
2906 stubCall.addArgument(regT0);
2909 emitTagAsBoolImmediate(regT0);
2917 stubCall.addArgument(regT0);
2920 xor32(Imm32(0x1), regT0);
2921 emitTagAsBoolImmediate(regT0);
2930 stubCall.addArgument(regT0);
2940 stubCall.addArgument(regT0);
2989 stubCall.addArgument(regT0);
3006 m_assembler.mov_r(regT2, regT0);
3009 m_assembler.mov_r(regT2, m_assembler.asr(regT0, 1));
3026 m_assembler.and_r(regT0, regS1, regT3);
3027 Jump exitBranch2 = branchTest32(Zero, regT0);
3038 m_assembler.mov_r(regT0, regT0);
3055 m_assembler.mov_r(regT0, regT2);
3057 m_assembler.mov_r(regT0, m_assembler.lsl(regT2, 1));
3058 m_assembler.eor_r(regT0, regT0, ARMAssembler::getOp2(1));