OLD | NEW |
1 // Copyright 2012 the V8 project authors. All rights reserved. | 1 // Copyright 2012 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 #ifndef V8_MIPS_MACRO_ASSEMBLER_MIPS_H_ | 5 #ifndef V8_MIPS_MACRO_ASSEMBLER_MIPS_H_ |
6 #define V8_MIPS_MACRO_ASSEMBLER_MIPS_H_ | 6 #define V8_MIPS_MACRO_ASSEMBLER_MIPS_H_ |
7 | 7 |
8 #include "src/assembler.h" | 8 #include "src/assembler.h" |
9 #include "src/globals.h" | 9 #include "src/globals.h" |
10 #include "src/mips/assembler-mips.h" | 10 #include "src/mips/assembler-mips.h" |
(...skipping 753 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
764 // the higher 32 bits of the 64-bit coprocessor register, | 764 // the higher 32 bits of the 64-bit coprocessor register, |
765 // while leaving the low bits unchanged. | 765 // while leaving the low bits unchanged. |
766 void Mthc1(Register rt, FPURegister fs); | 766 void Mthc1(Register rt, FPURegister fs); |
767 | 767 |
768 // FP32 mode: move the high part of the double-register pair into | 768 // FP32 mode: move the high part of the double-register pair into |
769 // general purpose register. | 769 // general purpose register. |
770 // FP64 mode: Move the higher 32 bits of the 64-bit coprocessor register into | 770 // FP64 mode: Move the higher 32 bits of the 64-bit coprocessor register into |
771 // general-purpose register. | 771 // general-purpose register. |
772 void Mfhc1(Register rt, FPURegister fs); | 772 void Mfhc1(Register rt, FPURegister fs); |
773 | 773 |
774 // Wrapper function for the different cmp/branch types. | 774 // Wrapper functions for the different cmp/branch types. |
| 775 void BranchFSize(SecondaryField sizeField, Label* target, Label* nan, |
| 776 Condition cc, FPURegister cmp1, FPURegister cmp2, |
| 777 BranchDelaySlot bd = PROTECT); |
| 778 |
775 void BranchF(Label* target, | 779 void BranchF(Label* target, |
776 Label* nan, | 780 Label* nan, |
777 Condition cc, | 781 Condition cc, |
778 FPURegister cmp1, | 782 FPURegister cmp1, |
779 FPURegister cmp2, | 783 FPURegister cmp2, |
780 BranchDelaySlot bd = PROTECT); | 784 BranchDelaySlot bd = PROTECT); |
781 | 785 |
| 786 void BranchFS(Label* target, Label* nan, Condition cc, FPURegister cmp1, |
| 787 FPURegister cmp2, BranchDelaySlot bd = PROTECT); |
| 788 |
782 // Alternate (inline) version for better readability with USE_DELAY_SLOT. | 789 // Alternate (inline) version for better readability with USE_DELAY_SLOT. |
783 inline void BranchF(BranchDelaySlot bd, | 790 inline void BranchF(BranchDelaySlot bd, |
784 Label* target, | 791 Label* target, |
785 Label* nan, | 792 Label* nan, |
786 Condition cc, | 793 Condition cc, |
787 FPURegister cmp1, | 794 FPURegister cmp1, |
788 FPURegister cmp2) { | 795 FPURegister cmp2) { |
789 BranchF(target, nan, cc, cmp1, cmp2, bd); | 796 BranchF(target, nan, cc, cmp1, cmp2, bd); |
790 } | 797 } |
791 | 798 |
| 799 inline void BranchFS(BranchDelaySlot bd, Label* target, Label* nan, |
| 800 Condition cc, FPURegister cmp1, FPURegister cmp2) { |
| 801 BranchFS(target, nan, cc, cmp1, cmp2, bd); |
| 802 } |
| 803 |
792 // Truncates a double using a specific rounding mode, and writes the value | 804 // Truncates a double using a specific rounding mode, and writes the value |
793 // to the result register. | 805 // to the result register. |
794 // The except_flag will contain any exceptions caused by the instruction. | 806 // The except_flag will contain any exceptions caused by the instruction. |
795 // If check_inexact is kDontCheckForInexactConversion, then the inexact | 807 // If check_inexact is kDontCheckForInexactConversion, then the inexact |
796 // exception is masked. | 808 // exception is masked. |
797 void EmitFPUTruncate(FPURoundingMode rounding_mode, | 809 void EmitFPUTruncate(FPURoundingMode rounding_mode, |
798 Register result, | 810 Register result, |
799 DoubleRegister double_input, | 811 DoubleRegister double_input, |
800 Register scratch, | 812 Register scratch, |
801 DoubleRegister double_scratch, | 813 DoubleRegister double_scratch, |
(...skipping 912 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1714 #define CODE_COVERAGE_TOSTRING(x) CODE_COVERAGE_STRINGIFY(x) | 1726 #define CODE_COVERAGE_TOSTRING(x) CODE_COVERAGE_STRINGIFY(x) |
1715 #define __FILE_LINE__ __FILE__ ":" CODE_COVERAGE_TOSTRING(__LINE__) | 1727 #define __FILE_LINE__ __FILE__ ":" CODE_COVERAGE_TOSTRING(__LINE__) |
1716 #define ACCESS_MASM(masm) masm->stop(__FILE_LINE__); masm-> | 1728 #define ACCESS_MASM(masm) masm->stop(__FILE_LINE__); masm-> |
1717 #else | 1729 #else |
1718 #define ACCESS_MASM(masm) masm-> | 1730 #define ACCESS_MASM(masm) masm-> |
1719 #endif | 1731 #endif |
1720 | 1732 |
1721 } } // namespace v8::internal | 1733 } } // namespace v8::internal |
1722 | 1734 |
1723 #endif // V8_MIPS_MACRO_ASSEMBLER_MIPS_H_ | 1735 #endif // V8_MIPS_MACRO_ASSEMBLER_MIPS_H_ |
OLD | NEW |