| OLD | NEW | 
|     1 // Copyright 2012 the V8 project authors. All rights reserved. |     1 // Copyright 2012 the V8 project authors. All rights reserved. | 
|     2 // Redistribution and use in source and binary forms, with or without |     2 // Redistribution and use in source and binary forms, with or without | 
|     3 // modification, are permitted provided that the following conditions are |     3 // modification, are permitted provided that the following conditions are | 
|     4 // met: |     4 // met: | 
|     5 // |     5 // | 
|     6 //     * Redistributions of source code must retain the above copyright |     6 //     * Redistributions of source code must retain the above copyright | 
|     7 //       notice, this list of conditions and the following disclaimer. |     7 //       notice, this list of conditions and the following disclaimer. | 
|     8 //     * Redistributions in binary form must reproduce the above |     8 //     * Redistributions in binary form must reproduce the above | 
|     9 //       copyright notice, this list of conditions and the following |     9 //       copyright notice, this list of conditions and the following | 
|    10 //       disclaimer in the documentation and/or other materials provided |    10 //       disclaimer in the documentation and/or other materials provided | 
| (...skipping 1407 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|  1418       __ Move(double_result, 1); |  1418       __ Move(double_result, 1); | 
|  1419       __ sqrt_d(double_scratch, double_scratch); |  1419       __ sqrt_d(double_scratch, double_scratch); | 
|  1420       __ div_d(double_result, double_result, double_scratch); |  1420       __ div_d(double_result, double_result, double_scratch); | 
|  1421       __ jmp(&done); |  1421       __ jmp(&done); | 
|  1422     } |  1422     } | 
|  1423  |  1423  | 
|  1424     __ push(ra); |  1424     __ push(ra); | 
|  1425     { |  1425     { | 
|  1426       AllowExternalCallThatCantCauseGC scope(masm); |  1426       AllowExternalCallThatCantCauseGC scope(masm); | 
|  1427       __ PrepareCallCFunction(0, 2, scratch2); |  1427       __ PrepareCallCFunction(0, 2, scratch2); | 
|  1428       __ SetCallCDoubleArguments(double_base, double_exponent); |  1428       __ MovToFloatParameters(double_base, double_exponent); | 
|  1429       __ CallCFunction( |  1429       __ CallCFunction( | 
|  1430           ExternalReference::power_double_double_function(masm->isolate()), |  1430           ExternalReference::power_double_double_function(masm->isolate()), | 
|  1431           0, 2); |  1431           0, 2); | 
|  1432     } |  1432     } | 
|  1433     __ pop(ra); |  1433     __ pop(ra); | 
|  1434     __ GetCFunctionDoubleResult(double_result); |  1434     __ MovFromFloatResult(double_result); | 
|  1435     __ jmp(&done); |  1435     __ jmp(&done); | 
|  1436  |  1436  | 
|  1437     __ bind(&int_exponent_convert); |  1437     __ bind(&int_exponent_convert); | 
|  1438   } |  1438   } | 
|  1439  |  1439  | 
|  1440   // Calculate power with integer exponent. |  1440   // Calculate power with integer exponent. | 
|  1441   __ bind(&int_exponent); |  1441   __ bind(&int_exponent); | 
|  1442  |  1442  | 
|  1443   // Get two copies of exponent in the registers scratch and exponent. |  1443   // Get two copies of exponent in the registers scratch and exponent. | 
|  1444   if (exponent_type_ == INTEGER) { |  1444   if (exponent_type_ == INTEGER) { | 
| (...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|  1502     __ sdc1(double_result, |  1502     __ sdc1(double_result, | 
|  1503             FieldMemOperand(heapnumber, HeapNumber::kValueOffset)); |  1503             FieldMemOperand(heapnumber, HeapNumber::kValueOffset)); | 
|  1504     ASSERT(heapnumber.is(v0)); |  1504     ASSERT(heapnumber.is(v0)); | 
|  1505     __ IncrementCounter(counters->math_pow(), 1, scratch, scratch2); |  1505     __ IncrementCounter(counters->math_pow(), 1, scratch, scratch2); | 
|  1506     __ DropAndRet(2); |  1506     __ DropAndRet(2); | 
|  1507   } else { |  1507   } else { | 
|  1508     __ push(ra); |  1508     __ push(ra); | 
|  1509     { |  1509     { | 
|  1510       AllowExternalCallThatCantCauseGC scope(masm); |  1510       AllowExternalCallThatCantCauseGC scope(masm); | 
|  1511       __ PrepareCallCFunction(0, 2, scratch); |  1511       __ PrepareCallCFunction(0, 2, scratch); | 
|  1512       __ SetCallCDoubleArguments(double_base, double_exponent); |  1512       __ MovToFloatParameters(double_base, double_exponent); | 
|  1513       __ CallCFunction( |  1513       __ CallCFunction( | 
|  1514           ExternalReference::power_double_double_function(masm->isolate()), |  1514           ExternalReference::power_double_double_function(masm->isolate()), | 
|  1515           0, 2); |  1515           0, 2); | 
|  1516     } |  1516     } | 
|  1517     __ pop(ra); |  1517     __ pop(ra); | 
|  1518     __ GetCFunctionDoubleResult(double_result); |  1518     __ MovFromFloatResult(double_result); | 
|  1519  |  1519  | 
|  1520     __ bind(&done); |  1520     __ bind(&done); | 
|  1521     __ IncrementCounter(counters->math_pow(), 1, scratch, scratch2); |  1521     __ IncrementCounter(counters->math_pow(), 1, scratch, scratch2); | 
|  1522     __ Ret(); |  1522     __ Ret(); | 
|  1523   } |  1523   } | 
|  1524 } |  1524 } | 
|  1525  |  1525  | 
|  1526  |  1526  | 
|  1527 bool CEntryStub::NeedsImmovableCode() { |  1527 bool CEntryStub::NeedsImmovableCode() { | 
|  1528   return true; |  1528   return true; | 
| (...skipping 4494 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|  6023   __ bind(&fast_elements_case); |  6023   __ bind(&fast_elements_case); | 
|  6024   GenerateCase(masm, FAST_ELEMENTS); |  6024   GenerateCase(masm, FAST_ELEMENTS); | 
|  6025 } |  6025 } | 
|  6026  |  6026  | 
|  6027  |  6027  | 
|  6028 #undef __ |  6028 #undef __ | 
|  6029  |  6029  | 
|  6030 } }  // namespace v8::internal |  6030 } }  // namespace v8::internal | 
|  6031  |  6031  | 
|  6032 #endif  // V8_TARGET_ARCH_MIPS |  6032 #endif  // V8_TARGET_ARCH_MIPS | 
| OLD | NEW |