| OLD | NEW | 
|---|
| 1 // Copyright 2013 the V8 project authors. All rights reserved. | 1 // Copyright 2013 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 547 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 558   __ Push(scratch1, scratch2); | 558   __ Push(scratch1, scratch2); | 
| 559   // Account for saved regs if input is jssp. | 559   // Account for saved regs if input is jssp. | 
| 560   if (input.is(jssp)) double_offset += 2 * kPointerSize; | 560   if (input.is(jssp)) double_offset += 2 * kPointerSize; | 
| 561 | 561 | 
| 562   if (!skip_fastpath()) { | 562   if (!skip_fastpath()) { | 
| 563     __ Push(double_scratch); | 563     __ Push(double_scratch); | 
| 564     if (input.is(jssp)) double_offset += 1 * kDoubleSize; | 564     if (input.is(jssp)) double_offset += 1 * kDoubleSize; | 
| 565     __ Ldr(double_scratch, MemOperand(input, double_offset)); | 565     __ Ldr(double_scratch, MemOperand(input, double_offset)); | 
| 566     // Try to convert with a FPU convert instruction.  This handles all | 566     // Try to convert with a FPU convert instruction.  This handles all | 
| 567     // non-saturating cases. | 567     // non-saturating cases. | 
| 568     __ TryInlineTruncateDoubleToI(result, double_scratch, &done); | 568     __ TryConvertDoubleToInt64(result, double_scratch, &done); | 
| 569     __ Fmov(result, double_scratch); | 569     __ Fmov(result, double_scratch); | 
| 570   } else { | 570   } else { | 
| 571     __ Ldr(result, MemOperand(input, double_offset)); | 571     __ Ldr(result, MemOperand(input, double_offset)); | 
| 572   } | 572   } | 
| 573 | 573 | 
| 574   // If we reach here we need to manually convert the input to an int32. | 574   // If we reach here we need to manually convert the input to an int32. | 
| 575 | 575 | 
| 576   // Extract the exponent. | 576   // Extract the exponent. | 
| 577   Register exponent = scratch1; | 577   Register exponent = scratch1; | 
| 578   __ Ubfx(exponent, result, HeapNumber::kMantissaBits, | 578   __ Ubfx(exponent, result, HeapNumber::kMantissaBits, | 
| (...skipping 5220 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 5799                               MemOperand(fp, 6 * kPointerSize), | 5799                               MemOperand(fp, 6 * kPointerSize), | 
| 5800                               NULL); | 5800                               NULL); | 
| 5801 } | 5801 } | 
| 5802 | 5802 | 
| 5803 | 5803 | 
| 5804 #undef __ | 5804 #undef __ | 
| 5805 | 5805 | 
| 5806 } }  // namespace v8::internal | 5806 } }  // namespace v8::internal | 
| 5807 | 5807 | 
| 5808 #endif  // V8_TARGET_ARCH_A64 | 5808 #endif  // V8_TARGET_ARCH_A64 | 
| OLD | NEW | 
|---|