Home | History | Annotate | Download | only in jit

Lines Matching refs:regT1

53     // regT0 holds payload, regT1 holds tag
55 Jump string_failureCases1 = branch32(NotEqual, regT1, Imm32(JSValue::CellTag));
63 move(Imm32(JSValue::Int32Tag), regT1);
72 // regT0 holds callee, regT1 holds argCount. regT2 will hold the FunctionExecutable.
83 emitGetJITStubArg(2, regT1); // argCount
88 Jump arityCheckOkay2 = branch32(Equal, Address(regT2, OBJECT_OFFSETOF(FunctionExecutable, m_numParameters)), regT1);
93 move(regT1, callFrameRegister);
94 emitGetJITStubArg(2, regT1); // argCount
111 // regT0 holds callee, regT1 holds argCount. regT2 will hold the FunctionExecutable.
121 emitGetJITStubArg(2, regT1); // argCount
127 Jump arityCheckOkay3 = branch32(Equal, Address(regT2, OBJECT_OFFSETOF(FunctionExecutable, m_numParameters)), regT1);
132 move(regT1, callFrameRegister);
133 emitGetJITStubArg(2, regT1); // argCount
151 emitGetFromCallFrameHeaderPtr(RegisterFile::CallerFrame, regT1);
152 emitGetFromCallFrameHeaderPtr(RegisterFile::ScopeChain, regT1, regT1);
153 emitPutToCallFrameHeader(regT1, RegisterFile::ScopeChain);
212 // Calculate the start of the callframe header, and store in regT1
213 addPtr(Imm32(-RegisterFile::CallFrameHeaderSize * (int)sizeof(Register)), callFrameRegister, regT1);
217 subPtr(regT0, regT1);
218 storePtr(regT1, Address(stackPointerRegister, OBJECT_OFFSETOF(NativeCallFrameStructure, args) + OBJECT_OFFSETOF(ArgList, m_args)));
224 // regT1 currently points to the first argument, regT1 - sizeof(Register) points to 'this'
225 loadPtr(Address(regT1, -(int)sizeof(Register) + OBJECT_OFFSETOF(JSValue, u.asBits.payload)), regT2);
226 loadPtr(Address(regT1, -(int)sizeof(Register) + OBJECT_OFFSETOF(JSValue, u.asBits.tag)), regT3);
244 emitLoad(0, regT1, regT0, X86Registers::eax);
268 // Calculate the start of the callframe header, and store in regT1
269 move(callFrameRegister, regT1);
270 sub32(Imm32(RegisterFile::CallFrameHeaderSize * (int32_t)sizeof(Register)), regT1);
272 // Calculate start of arguments as callframe header - sizeof(Register) * argcount (regT1)
274 subPtr(regT0, regT1);
277 storePtr(regT1, Address(stackPointerRegister, OBJECT_OFFSETOF(ArgList, m_args)));
294 // regT1 currently points to the first argument, regT1-sizeof(Register) points to 'this'
295 load32(Address(regT1, -(int32_t)sizeof(void*) * 2), regT3);
297 load32(Address(regT1, -(int32_t)sizeof(void*)), regT3);
304 move(callFrameRegister, regT1);
310 load32(Address(stackPointerRegister, 20), regT1);
332 emitGetFromCallFrameHeaderPtr(RegisterFile::ReturnPC, regT1);
334 storePtr(regT1, regT2);
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);
429 addSlowCase(branch32(NotEqual, regT1, Imm32(JSValue::Int32Tag)));
435 emitLoad(op1, regT1, regT0);
436 addSlowCase(branch32(NotEqual, regT1, Imm32(JSValue::Int32Tag)));
441 emitLoad2(op1, regT1, regT0, op2, regT3, regT2);
442 addSlowCase(branch32(NotEqual, regT1, Imm32(JSValue::Int32Tag)));
480 emitLoadPayload(proto, regT1);
492 // Initially, regT1 still contains proto and regT2 still contains value.
497 // Load the prototype of the cell in regT2. If this is equal to regT1 - WIN!
501 Jump isInstance = branchPtr(Equal, regT2, regT1);
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);
639 Jump isImm = branch32(NotEqual, regT1, Imm32(JSValue::CellTag));
644 emitStore(dst, regT1, regT0);
645 map(m_bytecodeIndex + OPCODE_LENGTH(op_to_primitive), dst, regT1, regT0);
655 stubCall.addArgument(regT1, regT0);
695 loadPtr(structureAddress, regT1);
696 addSlowCase(branchPtr(NotEqual, regT1, Address(regT0, OBJECT_OFFSETOF(JSCell, m_structure))));
702 load32(BaseIndex(regT2, regT3, TimesEight, 4), regT1); // tag
703 emitStore(dst, regT1, regT0);
704 map(m_bytecodeIndex + OPCODE_LENGTH(op_resolve_global), dst, regT1, regT0);
754 emitLoad(cond, regT1, regT0);
756 Jump isTrue = branch32(Equal, regT1, Imm32(JSValue::TrueTag));
757 addJump(branch32(Equal, regT1, Imm32(JSValue::FalseTag)), target);
759 Jump isNotInteger = branch32(NotEqual, regT1, Imm32(JSValue::Int32Tag));
766 addSlowCase(branch32(Above, regT1, Imm32(JSValue::LowestTag)));
795 emitLoad(cond, regT1, regT0);
797 Jump isFalse = branch32(Equal, regT1, Imm32(JSValue::FalseTag));
798 addJump(branch32(Equal, regT1, Imm32(JSValue::TrueTag)), target);
800 Jump isNotInteger = branch32(NotEqual, regT1, Imm32(JSValue::Int32Tag));
807 addSlowCase(branch32(Above, regT1, Imm32(JSValue::LowestTag)));
836 emitLoad(src, regT1, regT0);
838 Jump isImmediate = branch32(NotEqual, regT1, Imm32(JSValue::CellTag));
849 set32(Equal, regT1, Imm32(JSValue::NullTag), regT2);
850 set32(Equal, regT1, Imm32(JSValue::UndefinedTag), regT1);
851 or32(regT2, regT1);
853 addJump(branchTest32(NonZero, regT1), target);
863 emitLoad(src, regT1, regT0);
865 Jump isImmediate = branch32(NotEqual, regT1, Imm32(JSValue::CellTag));
876 set32(Equal, regT1, Imm32(JSValue::NullTag), regT2);
877 set32(Equal, regT1, Imm32(JSValue::UndefinedTag), regT1);
878 or32(regT2, regT1);
880 addJump(branchTest32(Zero, regT1), target);
891 emitLoad(src, regT1, regT0);
892 addJump(branch32(NotEqual, regT1, Imm32(JSValue::CellTag)), target);
916 emitLoad2(src1, regT1, regT0, src2, regT3, regT2);
917 addSlowCase(branch32(NotEqual, regT1, regT3));
918 addSlowCase(branch32(Equal, regT1, Imm32(JSValue::CellTag)));
919 addSlowCase(branch32(Below, regT1, Imm32(JSValue::LowestTag)));
968 emitLoad2(src1, regT1, regT0, src2, regT3, regT2);
969 addSlowCase(branch32(NotEqual, regT1, regT3));
970 addSlowCase(branch32(Equal, regT1, Imm32(JSValue::CellTag)));
971 addSlowCase(branch32(Below, regT1, Imm32(JSValue::LowestTag)));
1003 stubCallEq.addArgument(regT1, regT0);
1020 emitLoadTag(src2, regT1);
1025 and32(regT1, regT2);
1030 set8(Equal, regT0, regT1, regT0);
1032 set8(NotEqual, regT0, regT1, regT0);
1084 emitLoad(src, regT1, regT0);
1085 Jump isImmediate = branch32(NotEqual, regT1, Imm32(JSValue::CellTag));
1087 loadPtr(Address(regT0, OBJECT_OFFSETOF(JSCell, m_structure)), regT1);
1088 setTest8(NonZero, Address(regT1, OBJECT_OFFSETOF(Structure, m_typeInfo.m_flags)), Imm32(MasqueradesAsUndefined), regT1);
1094 set8(Equal, regT1, Imm32(JSValue::NullTag), regT2);
1095 set8(Equal, regT1, Imm32(JSValue::UndefinedTag), regT1);
1096 or32(regT2, regT1);
1100 or32(Imm32(JSValue::FalseTag), regT1);
1102 emitStoreBool(dst, regT1);
1110 emitLoad(src, regT1, regT0);
1111 Jump isImmediate = branch32(NotEqual, regT1, Imm32(JSValue::CellTag));
1113 loadPtr(Address(regT0, OBJECT_OFFSETOF(JSCell, m_structure)), regT1);
1114 setTest8(Zero, Address(regT1, OBJECT_OFFSETOF(Structure, m_typeInfo.m_flags)), Imm32(MasqueradesAsUndefined), regT1);
1120 set8(NotEqual, regT1, Imm32(JSValue::NullTag), regT2);
1121 set8(NotEqual, regT1, Imm32(JSValue::UndefinedTag), regT1);
1122 and32(regT2, regT1);
1126 or32(Imm32(JSValue::FalseTag), regT1);
1128 emitStoreBool(dst, regT1);
1177 emitLoad(base, regT1, regT0);
1179 isNotObject.append(branch32(NotEqual, regT1, Imm32(JSValue::CellTag)));
1197 addJump(branch32(Equal, regT1, Imm32(JSValue::NullTag)), breakTarget);
1198 addJump(branch32(Equal, regT1, Imm32(JSValue::UndefinedTag)), breakTarget);
1200 toObjectStubCall.addArgument(regT1, regT0);
1223 loadPtr(addressFor(it), regT1);
1224 loadPtr(Address(regT1, OBJECT_OFFSETOF(JSPropertyNameIterator, m_jsStrings)), regT2);
1238 callHasProperty.append(branchPtr(NotEqual, regT2, Address(Address(regT1, OBJECT_OFFSETOF(JSPropertyNameIterator, m_cachedStructure)))));
1241 loadPtr(Address(Address(regT1, OBJECT_OFFSETOF(JSPropertyNameIterator, m_cachedPrototypeChain))), regT3);
1258 loadPtr(addressFor(dst), regT1);
1261 stubCall.addArgument(regT1);
1289 emitLoad(src, regT1, regT0);
1291 Jump isInt32 = branch32(Equal, regT1, Imm32(JSValue::Int32Tag));
1292 addSlowCase(branch32(AboveOrEqual, regT1, Imm32(JSValue::EmptyValueTag)));
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);
1456 emitLoad(thisRegister, regT1, regT0);
1458 addSlowCase(branch32(NotEqual, regT1, Imm32(JSValue::CellTag)));
1463 map(m_bytecodeIndex + OPCODE_LENGTH(op_convert_this), thisRegister, regT1, regT0);
1474 stubCall.addArgument(regT1, regT0);
1534 // regT0 holds callee, regT1 holds argCount. regT2 will hold the FunctionExecutable.
1545 emitGetJITStubArg(2, regT1); // argCount
1550 Jump arityCheckOkay2 = branch32(Equal, Address(regT2, OBJECT_OFFSETOF(FunctionExecutable, m_numParameters)), regT1);
1555 move(regT1, callFrameRegister);
1556 emitGetJITStubArg(2, regT1); // argCount
1571 // regT0 holds callee, regT1 holds argCount. regT2 will hold the FunctionExecutable.
1581 emitGetJITStubArg(2, regT1); // argCount
1587 Jump arityCheckOkay3 = branch32(Equal, Address(regT2, OBJECT_OFFSETOF(FunctionExecutable, m_numParameters)), regT1);
1592 move(regT1, callFrameRegister);
1593 emitGetJITStubArg(2, regT1); // argCount
1610 emitGetFromCallFrameHeaderPtr(RegisterFile::CallerFrame, regT1);
1611 emitGetFromCallFrameHeaderPtr(RegisterFile::ScopeChain, regT1, regT1);
1612 emitPutToCallFrameHeader(regT1, RegisterFile::ScopeChain);
1699 // Calculate the start of the callframe header, and store in regT1
1700 addPtr(Imm32(-RegisterFile::CallFrameHeaderSize * (int)sizeof(Register)), callFrameRegister, regT1);
1704 subPtr(regT0, regT1);
1705 storePtr(regT1, Address(stackPointerRegister, OBJECT_OFFSETOF(NativeCallFrameStructure, args) + OBJECT_OFFSETOF(ArgList, m_args)));
1711 // regT1 currently points to the first argument, regT1 - sizeof(Register) points to 'this'
1712 loadPtr(Address(regT1, -(int)sizeof(Register)), regT1);
1713 storePtr(regT1, Address(stackPointerRegister, OBJECT_OFFSETOF(NativeCallFrameStructure, thisValue)));
1756 // Calculate the start of the callframe header, and store in regT1
1757 move(callFrameRegister, regT1);
1758 sub32(Imm32(RegisterFile::CallFrameHeaderSize * (int32_t)sizeof(Register)), regT1);
1760 // Calculate start of arguments as callframe header - sizeof(Register) * argcount (regT1)
1762 subPtr(regT0, regT1);
1765 storePtr(regT1, Address(stackPointerRegister, OBJECT_OFFSETOF(ArgList, m_args)));
1767 // Setup arg3: regT1 currently points to the first argument, regT1-sizeof(Register) points to 'this'
1768 loadPtr(Address(regT1, -(int32_t)sizeof(Register)), regT2);
1771 emitGetFromCallFrameHeaderPtr(RegisterFile::Callee, regT1);
1779 call(Address(regT1, OBJECT_OFFSETOF(JSFunction, m_data)));
1794 emitGetFromCallFrameHeaderPtr(RegisterFile::ReturnPC, regT1);
1800 restoreReturnAddressBeforeReturn(regT1);
1806 emitGetFromCallFrameHeaderPtr(RegisterFile::ReturnPC, regT1);
1808 storePtr(regT1, regT2);
1869 // Perform the copy via regT1; do not disturb any mapping in regT0.
1870 loadPtr(Address(callFrameRegister, src * sizeof(Register)), regT1);
1871 storePtr(regT1, Address(callFrameRegister, dst * sizeof(Register)));
1909 emitGetVirtualRegisters(op1, regT0, op2, regT1);
1911 emitJumpSlowCaseIfNotImmediateInteger(regT1);
1912 addJump(branch32(LessThanOrEqual, regT0, regT1), target);
1932 emitGetVirtualRegister(proto, regT1);
1937 emitJumpSlowCaseIfNotJSCell(regT1, proto);
1944 // Initially, regT1 still contains proto and regT2 still contains value.
1949 // Load the prototype of the object in regT2. If this is equal to regT1 - WIN!
1953 Jump isInstance = branchPtr(Equal, regT2, regT1);
2013 emitGetVirtualRegister(currentInstruction[3].u.operand, regT1);
2016 emitPutVariableObjectRegister(regT1, regT0, currentInstruction[2].u.operand);
2036 emitGetFromCallFrameHeaderPtr(RegisterFile::ScopeChain, regT1);
2039 loadPtr(Address(regT1, OBJECT_OFFSETOF(ScopeChainNode, next)), regT1);
2041 loadPtr(Address(regT1, OBJECT_OFFSETOF(ScopeChainNode, object)), regT1);
2042 emitPutVariableObjectRegister(regT0, regT1, currentInstruction[1].u.operand);
2063 ASSERT(callFrameRegister != regT1);
2064 ASSERT(regT1 != returnValueRegister);
2071 emitGetFromCallFrameHeaderPtr(RegisterFile::ReturnPC, regT1);
2077 restoreReturnAddressBeforeReturn(regT1);
2157 loadPtr(structureAddress, regT1);
2158 Jump noMatch = branchPtr(NotEqual, regT1, Address(regT0, OBJECT_OFFSETOF(JSCell, m_structure))); // Structures don't match
2163 load32(offsetAddr, regT1);
2164 loadPtr(BaseIndex(regT0, regT1, ScalePtr), regT0);
2275 emitGetVirtualRegisters(currentInstruction[2].u.operand, regT0, currentInstruction[3].u.operand, regT1);
2276 emitJumpSlowCaseIfNotImmediateIntegers(regT0, regT1, regT2);
2277 set32(Equal, regT1, regT0, regT0);
2327 emitGetVirtualRegisters(currentInstruction[2].u.operand, regT0, currentInstruction[3].u.operand, regT1);
2328 emitJumpSlowCaseIfNotImmediateIntegers(regT0, regT1, regT2);
2329 set32(NotEqual, regT1, regT0, regT0);
2338 emitGetVirtualRegisters(currentInstruction[2].u.operand, regT0, currentInstruction[3].u.operand, regT1);
2339 emitJumpSlowCaseIfNotImmediateIntegers(regT0, regT1, regT2);
2340 xorPtr(regT1, regT0);
2354 emitGetVirtualRegisters(currentInstruction[2].u.operand, regT0, currentInstruction[3].u.operand, regT1);
2355 emitJumpSlowCaseIfNotImmediateIntegers(regT0, regT1, regT2);
2356 orPtr(regT1, regT0);
2403 move(regT0, regT1);
2404 and32(Imm32(~JSImmediate::ExtendedTagBitUndefined), regT1);
2405 addJump(branch32(Equal, regT1, Imm32(JSImmediate::FullTagTypeNull)), breakTarget);
2431 loadPtr(addressFor(it), regT1);
2432 loadPtr(Address(regT1, OBJECT_OFFSETOF(JSPropertyNameIterator, m_jsStrings)), regT2);
2451 callHasProperty.append(branchPtr(NotEqual, regT2, Address(Address(regT1, OBJECT_OFFSETOF(JSPropertyNameIterator, m_cachedStructure)))));
2454 loadPtr(Address(Address(regT1, OBJECT_OFFSETOF(JSPropertyNameIterator, m_cachedPrototypeChain))), regT3);
2471 emitGetVirtualRegister(dst, regT1);
2474 stubCall.addArgument(regT1);
2503 emitGetVirtualRegisters(src1, regT0, src2, regT1);
2507 orPtr(regT1, regT2);
2512 set32(Equal, regT1, regT0, regT0);
2514 set32(NotEqual, regT1, regT0, regT0);
2734 loadPtr(Address(regT0, OBJECT_OFFSETOF(JSCell, m_structure)), regT1);
2735 addSlowCase(branchTest32(NonZero, Address(regT1, OBJECT_OFFSETOF(Structure, m_typeInfo.m_flags)), Imm32(NeedsThisConversion)));
2741 peek(regT1, OBJECT_OFFSETOF(JITStackFrame, enabledProfilerReference) / sizeof (void*));
2742 Jump noProfiler = branchTestPtr(Zero, Address(regT1));
2745 stubCall.addArgument(currentInstruction[1].u.operand, regT1);
2753 peek(regT1, OBJECT_OFFSETOF(JITStackFrame, enabledProfilerReference) / sizeof (void*));
2754 Jump noProfiler = branchTestPtr(Zero, Address(regT1));
2757 stubCall.addArgument(currentInstruction[1].u.operand, regT1);
2825 stubCall.addArgument(regT1);
2889 stubCall.addArgument(regT1);
2898 stubCall.addArgument(regT1);
2907 stubCall.addArgument(regT1);
2918 stubCall.addArgument(regT1);
2931 stubCall.addArgument(regT1);
2941 stubCall.addArgument(regT1);
3002 push(regT1);
3011 m_assembler.mov_r(regT1, ARMAssembler::getOp2(0));
3015 m_assembler.eor_r(regT1, regT1, ARMAssembler::getOp2(1), ARMAssembler::MI);
3019 m_assembler.eor_r(regT1, regT1, ARMAssembler::getOp2(2), ARMAssembler::MI);
3051 m_assembler.teq_r(regT1, ARMAssembler::getOp2(0));
3061 pop(regT1);