Lines Matching refs:op2
90 unsigned op2 = currentInstruction[2].u.operand;
98 emitLoad(op2, regT1, regT0);
106 if (isOperandConstantImmediateChar(op2)) {
112 addJump(branch32(GreaterThanOrEqual, regT0, Imm32(asString(getConstantOperand(op2))->tryGetValue()[0])), target);
117 emitLoad(op2, regT3, regT2);
120 } else if (isOperandConstantImmediateInt(op2)) {
123 addJump(branch32(GreaterThanOrEqual, regT0, Imm32(getConstantOperand(op2).asInt32())), target);
125 emitLoad2(op1, regT1, regT0, op2, regT3, regT2);
139 emitBinaryDoubleOp(op_jnless, target, op1, op2, OperandTypes(), notInt32Op1, notInt32Op2, !isOperandConstantImmediateInt(op1), isOperandConstantImmediateInt(op1) || !isOperandConstantImmediateInt(op2));
146 unsigned op2 = currentInstruction[2].u.operand;
149 if (isOperandConstantImmediateChar(op1) || isOperandConstantImmediateChar(op2)) {
156 if (!isOperandConstantImmediateInt(op1) && !isOperandConstantImmediateInt(op2))
164 if (isOperandConstantImmediateInt(op1) || !isOperandConstantImmediateInt(op2))
171 stubCall.addArgument(op2);
179 unsigned op2 = currentInstruction[2].u.operand;
187 emitLoad(op2, regT1, regT0);
195 if (isOperandConstantImmediateChar(op2)) {
201 addJump(branch32(LessThan, regT0, Imm32(asString(getConstantOperand(op2))->tryGetValue()[0])), target);
205 emitLoad(op2, regT3, regT2);
208 } else if (isOperandConstantImmediateInt(op2)) {
211 addJump(branch32(LessThan, regT0, Imm32(getConstantOperand(op2).asInt32())), target);
213 emitLoad2(op1, regT1, regT0, op2, regT3, regT2);
227 emitBinaryDoubleOp(op_jless, target, op1, op2, OperandTypes(), notInt32Op1, notInt32Op2, !isOperandConstantImmediateInt(op1), isOperandConstantImmediateInt(op1) || !isOperandConstantImmediateInt(op2));
234 unsigned op2 = currentInstruction[2].u.operand;
237 if (isOperandConstantImmediateChar(op1) || isOperandConstantImmediateChar(op2)) {
244 if (!isOperandConstantImmediateInt(op1) && !isOperandConstantImmediateInt(op2))
252 if (isOperandConstantImmediateInt(op1) || !isOperandConstantImmediateInt(op2))
258 stubCall.addArgument(op2);
266 unsigned op2 = currentInstruction[2].u.operand;
274 emitLoad(op2, regT1, regT0);
282 if (isOperandConstantImmediateChar(op2)) {
288 addJump(branch32(invert ? GreaterThan : LessThanOrEqual, regT0, Imm32(asString(getConstantOperand(op2))->tryGetValue()[0])), target);
292 emitLoad(op2, regT3, regT2);
295 } else if (isOperandConstantImmediateInt(op2)) {
298 addJump(branch32(invert ? GreaterThan : LessThanOrEqual, regT0, Imm32(getConstantOperand(op2).asInt32())), target);
300 emitLoad2(op1, regT1, regT0, op2, regT3, regT2);
314 emitBinaryDoubleOp(invert ? op_jnlesseq : op_jlesseq, target, op1, op2, OperandTypes(), notInt32Op1, notInt32Op2, !isOperandConstantImmediateInt(op1), isOperandConstantImmediateInt(op1) || !isOperandConstantImmediateInt(op2));
321 unsigned op2 = currentInstruction[2].u.operand;
324 if (isOperandConstantImmediateChar(op1) || isOperandConstantImmediateChar(op2)) {
331 if (!isOperandConstantImmediateInt(op1) && !isOperandConstantImmediateInt(op2))
339 if (isOperandConstantImmediateInt(op1) || !isOperandConstantImmediateInt(op2))
346 stubCall.addArgument(op2);
367 unsigned op2 = currentInstruction[3].u.operand;
369 if (isOperandConstantImmediateInt(op2)) {
372 lshift32(Imm32(getConstantOperand(op2).asInt32()), regT0);
377 emitLoad2(op1, regT1, regT0, op2, regT3, regT2);
382 emitStoreInt32(dst, regT0, dst == op1 || dst == op2);
389 unsigned op2 = currentInstruction[3].u.operand;
391 if (!isOperandConstantImmediateInt(op1) && !isOperandConstantImmediateInt(op2))
397 stubCall.addArgument(op2);
407 unsigned op2 = currentInstruction[3].u.operand;
411 if (isOperandConstantImmediateInt(op2)) {
414 int shift = getConstantOperand(op2).asInt32();
430 emitLoad2(op1, regT1, regT0, op2, regT3, regT2);
439 emitStoreInt32(dst, regT0, dst == op1 || dst == op2);
446 unsigned op2 = currentInstruction[3].u.operand;
447 if (isOperandConstantImmediateInt(op2)) {
448 int shift = getConstantOperand(op2).asInt32();
471 // op2 = regT3:regT2
477 Jump notInt = branch32(NotEqual, regT3, TrustedImm32(JSValue::Int32Tag)); // op2 is not an int
491 linkSlowCase(iter); // int32 check - op2 is not an int
498 stubCall.addArgument(op2);
532 unsigned op2 = currentInstruction[3].u.operand;
536 if (getOperandConstantImmediateInt(op1, op2, op, constant)) {
544 emitLoad2(op1, regT1, regT0, op2, regT3, regT2);
548 emitStoreInt32(dst, regT0, (op1 == dst || op2 == dst));
555 unsigned op2 = currentInstruction[3].u.operand;
557 if (!isOperandConstantImmediateInt(op1) && !isOperandConstantImmediateInt(op2))
563 stubCall.addArgument(op2);
573 unsigned op2 = currentInstruction[3].u.operand;
577 if (getOperandConstantImmediateInt(op1, op2, op, constant)) {
585 emitLoad2(op1, regT1, regT0, op2, regT3, regT2);
589 emitStoreInt32(dst, regT0, (op1 == dst || op2 == dst));
596 unsigned op2 = currentInstruction[3].u.operand;
598 if (!isOperandConstantImmediateInt(op1) && !isOperandConstantImmediateInt(op2))
604 stubCall.addArgument(op2);
614 unsigned op2 = currentInstruction[3].u.operand;
618 if (getOperandConstantImmediateInt(op1, op2, op, constant)) {
626 emitLoad2(op1, regT1, regT0, op2, regT3, regT2);
630 emitStoreInt32(dst, regT0, (op1 == dst || op2 == dst));
637 unsigned op2 = currentInstruction[3].u.operand;
639 if (!isOperandConstantImmediateInt(op1) && !isOperandConstantImmediateInt(op2))
645 stubCall.addArgument(op2);
798 unsigned op2 = currentInstruction[3].u.operand;
804 stubCall.addArgument(op2);
814 if (getOperandConstantImmediateInt(op1, op2, op, constant)) {
819 emitLoad2(op1, regT1, regT0, op2, regT3, regT2);
825 emitStoreInt32(dst, regT0, (op1 == dst || op2 == dst));
835 emitBinaryDoubleOp(op_add, dst, op1, op2, types, notInt32Op1, notInt32Op2);
870 unsigned op2 = currentInstruction[3].u.operand;
878 if (getOperandConstantImmediateInt(op1, op2, op, constant)) {
907 stubCall.addArgument(op2);
917 unsigned op2 = currentInstruction[3].u.operand;
923 if (isOperandConstantImmediateInt(op2)) {
924 emitSub32Constant(dst, op1, getConstantOperand(op2).asInt32(), types.first());
928 emitLoad2(op1, regT1, regT0, op2, regT3, regT2);
934 emitStoreInt32(dst, regT0, (op1 == dst || op2 == dst));
944 emitBinaryDoubleOp(op_sub, dst, op1, op2, types, notInt32Op1, notInt32Op2);
979 unsigned op2 = currentInstruction[3].u.operand;
982 if (isOperandConstantImmediateInt(op2)) {
1006 stubCall.addArgument(op2);
1010 void JIT::emitBinaryDoubleOp(OpcodeID opcodeID, unsigned dst, unsigned op1, unsigned op2, OperandTypes types, JumpList& notInt32Op1, JumpList& notInt32Op2, bool op1IsInRegisters, bool op2IsInRegisters)
1015 // Double case 1: Op1 is not int32; Op2 is unknown.
1025 emitLoad(op2, regT3, regT2);
1035 // Load Op2 as double into double register.
1037 emitLoadDouble(op2, fpRegT0);
1087 // Double case 2: Op1 is int32; Op2 is not int32.
1097 // Verify op2 is double.
1104 emitLoadDouble(op2, fpRegT2);
1109 emitLoadDouble(op2, fpRegT2);
1114 emitLoadDouble(op2, fpRegT2);
1119 emitLoadDouble(op2, fpRegT2);
1124 emitLoadDouble(op2, fpRegT1);
1128 emitLoadDouble(op2, fpRegT1);
1132 emitLoadDouble(op2, fpRegT1);
1136 emitLoadDouble(op2, fpRegT1);
1153 unsigned op2 = currentInstruction[3].u.operand;
1159 emitLoad2(op1, regT1, regT0, op2, regT3, regT2);
1167 emitStoreInt32(dst, regT0, (op1 == dst || op2 == dst));
1177 emitBinaryDoubleOp(op_mul, dst, op1, op2, types, notInt32Op1, notInt32Op2);
1185 unsigned op2 = currentInstruction[3].u.operand;
1192 emitStoreInt32(dst, TrustedImm32(0), (op1 == dst || op2 == dst));
1217 stubCall.addArgument(op2);
1227 unsigned op2 = currentInstruction[3].u.operand;
1241 emitLoad2(op1, regT1, regT0, op2, regT3, regT2);
1254 emitStoreInt32(dst, regT0, (op1 == dst || op2 == dst));
1263 emitBinaryDoubleOp(op_div, dst, op1, op2, types, notInt32Op1, notInt32Op2);
1271 unsigned op2 = currentInstruction[3].u.operand;
1288 stubCall.addArgument(op2);
1302 unsigned op2 = currentInstruction[3].u.operand;
1312 if (isOperandConstantImmediateInt(op2) && getConstantOperand(op2).asInt32() != 0) {
1314 move(Imm32(getConstantOperand(op2).asInt32()), regT2);
1316 if (getConstantOperand(op2).asInt32() == -1)
1319 emitLoad2(op1, regT1, regT0, op2, regT3, regT2);
1344 emitStoreInt32(dst, regT1, (op1 == dst || op2 == dst));
1352 unsigned op2 = currentInstruction[3].u.operand;
1354 if (isOperandConstantImmediateInt(op2) && getConstantOperand(op2).asInt32() != 0) {
1356 if (getConstantOperand(op2).asInt32() == -1)
1367 stubCall.addArgument(op2);
1377 unsigned op2 = currentInstruction[3].u.operand;
1380 emitLoad2(op1, regT1, regT0, op2, regT3, regT2);
1388 emitStoreInt32(dst, regT0, (op1 == dst || op2 == dst));
1392 stubCall.addArgument(op2);
1404 unsigned op2 = currentInstruction[3].u.operand;
1410 stubCall.addArgument(op2);