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 3789 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3800 } | 3800 } |
3801 | 3801 |
3802 | 3802 |
3803 void LCodeGen::DoDeferredRandom(LRandom* instr) { | 3803 void LCodeGen::DoDeferredRandom(LRandom* instr) { |
3804 __ PrepareCallCFunction(1, scratch0()); | 3804 __ PrepareCallCFunction(1, scratch0()); |
3805 __ CallCFunction(ExternalReference::random_uint32_function(isolate()), 1); | 3805 __ CallCFunction(ExternalReference::random_uint32_function(isolate()), 1); |
3806 // Return value is in r0. | 3806 // Return value is in r0. |
3807 } | 3807 } |
3808 | 3808 |
3809 | 3809 |
| 3810 void LCodeGen::DoMathExp(LMathExp* instr) { |
| 3811 DoubleRegister input = ToDoubleRegister(instr->value()); |
| 3812 DoubleRegister result = ToDoubleRegister(instr->result()); |
| 3813 DoubleRegister double_scratch1 = ToDoubleRegister(instr->double_temp()); |
| 3814 DoubleRegister double_scratch2 = double_scratch0(); |
| 3815 Register temp1 = ToRegister(instr->temp1()); |
| 3816 Register temp2 = ToRegister(instr->temp2()); |
| 3817 |
| 3818 MathExpGenerator::EmitMathExp( |
| 3819 masm(), input, result, double_scratch1, double_scratch2, |
| 3820 temp1, temp2, scratch0()); |
| 3821 } |
| 3822 |
| 3823 |
3810 void LCodeGen::DoMathLog(LUnaryMathOperation* instr) { | 3824 void LCodeGen::DoMathLog(LUnaryMathOperation* instr) { |
3811 ASSERT(ToDoubleRegister(instr->result()).is(d2)); | 3825 ASSERT(ToDoubleRegister(instr->result()).is(d2)); |
3812 TranscendentalCacheStub stub(TranscendentalCache::LOG, | 3826 TranscendentalCacheStub stub(TranscendentalCache::LOG, |
3813 TranscendentalCacheStub::UNTAGGED); | 3827 TranscendentalCacheStub::UNTAGGED); |
3814 CallCode(stub.GetCode(), RelocInfo::CODE_TARGET, instr); | 3828 CallCode(stub.GetCode(), RelocInfo::CODE_TARGET, instr); |
3815 } | 3829 } |
3816 | 3830 |
3817 | 3831 |
3818 void LCodeGen::DoMathTan(LUnaryMathOperation* instr) { | 3832 void LCodeGen::DoMathTan(LUnaryMathOperation* instr) { |
3819 ASSERT(ToDoubleRegister(instr->result()).is(d2)); | 3833 ASSERT(ToDoubleRegister(instr->result()).is(d2)); |
(...skipping 1951 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
5771 __ sub(scratch, result, Operand(index, LSL, kPointerSizeLog2 - kSmiTagSize)); | 5785 __ sub(scratch, result, Operand(index, LSL, kPointerSizeLog2 - kSmiTagSize)); |
5772 __ ldr(result, FieldMemOperand(scratch, | 5786 __ ldr(result, FieldMemOperand(scratch, |
5773 FixedArray::kHeaderSize - kPointerSize)); | 5787 FixedArray::kHeaderSize - kPointerSize)); |
5774 __ bind(&done); | 5788 __ bind(&done); |
5775 } | 5789 } |
5776 | 5790 |
5777 | 5791 |
5778 #undef __ | 5792 #undef __ |
5779 | 5793 |
5780 } } // namespace v8::internal | 5794 } } // namespace v8::internal |
OLD | NEW |