OLD | NEW |
1 // Copyright 2014 the V8 project authors. All rights reserved. | 1 // Copyright 2014 the V8 project authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #if V8_TARGET_ARCH_S390 | 5 #if V8_TARGET_ARCH_S390 |
6 | 6 |
7 #include "src/code-stubs.h" | 7 #include "src/code-stubs.h" |
8 #include "src/api-arguments.h" | 8 #include "src/api-arguments.h" |
9 #include "src/base/bits.h" | 9 #include "src/base/bits.h" |
10 #include "src/bootstrapper.h" | 10 #include "src/bootstrapper.h" |
(...skipping 758 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
769 __ LoadComplementRR(scratch, scratch); | 769 __ LoadComplementRR(scratch, scratch); |
770 __ bind(&positive_exponent); | 770 __ bind(&positive_exponent); |
771 | 771 |
772 Label while_true, no_carry, loop_end; | 772 Label while_true, no_carry, loop_end; |
773 __ bind(&while_true); | 773 __ bind(&while_true); |
774 __ mov(scratch2, Operand(1)); | 774 __ mov(scratch2, Operand(1)); |
775 __ AndP(scratch2, scratch); | 775 __ AndP(scratch2, scratch); |
776 __ beq(&no_carry, Label::kNear); | 776 __ beq(&no_carry, Label::kNear); |
777 __ mdbr(double_result, double_scratch); | 777 __ mdbr(double_result, double_scratch); |
778 __ bind(&no_carry); | 778 __ bind(&no_carry); |
779 __ ShiftRightArithP(scratch, scratch, Operand(1)); | 779 __ ShiftRightP(scratch, scratch, Operand(1)); |
| 780 __ LoadAndTestP(scratch, scratch); |
780 __ beq(&loop_end, Label::kNear); | 781 __ beq(&loop_end, Label::kNear); |
781 __ mdbr(double_scratch, double_scratch); | 782 __ mdbr(double_scratch, double_scratch); |
782 __ b(&while_true); | 783 __ b(&while_true); |
783 __ bind(&loop_end); | 784 __ bind(&loop_end); |
784 | 785 |
785 __ CmpP(exponent, Operand::Zero()); | 786 __ CmpP(exponent, Operand::Zero()); |
786 __ bge(&done); | 787 __ bge(&done); |
787 | 788 |
788 // get 1/double_result: | 789 // get 1/double_result: |
789 __ ldr(double_scratch, double_result); | 790 __ ldr(double_scratch, double_result); |
(...skipping 4601 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
5391 CallApiFunctionAndReturn(masm, api_function_address, thunk_ref, | 5392 CallApiFunctionAndReturn(masm, api_function_address, thunk_ref, |
5392 kStackUnwindSpace, NULL, return_value_operand, NULL); | 5393 kStackUnwindSpace, NULL, return_value_operand, NULL); |
5393 } | 5394 } |
5394 | 5395 |
5395 #undef __ | 5396 #undef __ |
5396 | 5397 |
5397 } // namespace internal | 5398 } // namespace internal |
5398 } // namespace v8 | 5399 } // namespace v8 |
5399 | 5400 |
5400 #endif // V8_TARGET_ARCH_S390 | 5401 #endif // V8_TARGET_ARCH_S390 |
OLD | NEW |