Changeset 37930 in webkit for trunk/JavaScriptCore/VM/CTI.cpp
- Timestamp:
- Oct 28, 2008, 12:14:12 PM (17 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/JavaScriptCore/VM/CTI.cpp
r37891 r37930 668 668 bool negated = (type == OpNStrictEq); 669 669 670 unsigned dst = instruction[ i +1].u.operand;671 unsigned src1 = instruction[ i +2].u.operand;672 unsigned src2 = instruction[ i +3].u.operand;670 unsigned dst = instruction[1].u.operand; 671 unsigned src1 = instruction[2].u.operand; 672 unsigned src2 = instruction[3].u.operand; 673 673 674 674 emitGetArg(src1, X86::eax); … … 973 973 974 974 #if ENABLE(OPCODE_SAMPLING) 975 m_jit.movl_i32m(m_machine->sampler()->encodeSample(instruction + i), m_machine->sampler()->sampleSlot()); 975 if (i > 0) // Avoid the overhead of sampling op_enter twice. 976 m_jit.movl_i32m(m_machine->sampler()->encodeSample(instruction + i), m_machine->sampler()->sampleSlot()); 976 977 #endif 977 978 … … 1047 1048 } 1048 1049 case op_loop: { 1049 emitSlowScriptCheck(instruction , i);1050 emitSlowScriptCheck(instruction + i, i); 1050 1051 1051 1052 unsigned target = instruction[i + 1].u.operand; … … 1055 1056 } 1056 1057 case op_loop_if_less: { 1057 emitSlowScriptCheck(instruction , i);1058 emitSlowScriptCheck(instruction + i, i); 1058 1059 1059 1060 unsigned target = instruction[i + 3].u.operand; … … 1076 1077 } 1077 1078 case op_loop_if_lesseq: { 1078 emitSlowScriptCheck(instruction , i);1079 emitSlowScriptCheck(instruction + i, i); 1079 1080 1080 1081 unsigned target = instruction[i + 3].u.operand; … … 1452 1453 CTI_COMPILE_BINARY_OP(op_lesseq) 1453 1454 case op_loop_if_true: { 1454 emitSlowScriptCheck(instruction , i);1455 emitSlowScriptCheck(instruction + i, i); 1455 1456 1456 1457 unsigned target = instruction[i + 2].u.operand; … … 1908 1909 CTI_COMPILE_UNARY_OP(op_is_function) 1909 1910 case op_stricteq: { 1910 compileOpStrictEq(instruction , i, OpStrictEq);1911 compileOpStrictEq(instruction + i, i, OpStrictEq); 1911 1912 i += 4; 1912 1913 break; 1913 1914 } 1914 1915 case op_nstricteq: { 1915 compileOpStrictEq(instruction , i, OpNStrictEq);1916 compileOpStrictEq(instruction + i, i, OpNStrictEq); 1916 1917 i += 4; 1917 1918 break; … … 2273 2274 OperandTypes types = OperandTypes::fromInt(instruction[i + 4].u.operand); 2274 2275 if (types.first().mightBeNumber() && types.second().mightBeNumber()) 2275 compileBinaryArithOpSlowCase(instruction , op_add, iter, dst, src1, src2, types, i);2276 compileBinaryArithOpSlowCase(instruction + i, op_add, iter, dst, src1, src2, types, i); 2276 2277 else 2277 2278 ASSERT_NOT_REACHED(); … … 2313 2314 } 2314 2315 case op_sub: { 2315 compileBinaryArithOpSlowCase(instruction , op_sub, iter, instruction[i + 1].u.operand, instruction[i + 2].u.operand, instruction[i + 3].u.operand, OperandTypes::fromInt(instruction[i + 4].u.operand), i);2316 compileBinaryArithOpSlowCase(instruction + i, op_sub, iter, instruction[i + 1].u.operand, instruction[i + 2].u.operand, instruction[i + 3].u.operand, OperandTypes::fromInt(instruction[i + 4].u.operand), i); 2316 2317 i += 5; 2317 2318 break; … … 2343 2344 } 2344 2345 case op_loop_if_less: { 2345 emitSlowScriptCheck(instruction , i);2346 emitSlowScriptCheck(instruction + i, i); 2346 2347 2347 2348 unsigned target = instruction[i + 3].u.operand; … … 2413 2414 } 2414 2415 case op_loop_if_lesseq: { 2415 emitSlowScriptCheck(instruction , i);2416 emitSlowScriptCheck(instruction + i, i); 2416 2417 2417 2418 unsigned target = instruction[i + 3].u.operand; … … 2475 2476 } 2476 2477 case op_loop_if_true: { 2477 emitSlowScriptCheck(instruction , i);2478 emitSlowScriptCheck(instruction + i, i); 2478 2479 2479 2480 m_jit.link(iter->from, m_jit.label()); … … 2690 2691 emitPutResult(dst); 2691 2692 } else 2692 compileBinaryArithOpSlowCase(instruction , op_mul, iter, dst, src1, src2, OperandTypes::fromInt(instruction[i + 4].u.operand), i);2693 compileBinaryArithOpSlowCase(instruction + i, op_mul, iter, dst, src1, src2, OperandTypes::fromInt(instruction[i + 4].u.operand), i); 2693 2694 i += 5; 2694 2695 break;
Note:
See TracChangeset
for help on using the changeset viewer.