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/mips64/assembler-mips64.h" | 10 #include "src/mips64/assembler-mips64.h" |
(...skipping 783 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
794 void Round_w_d(FPURegister fd, FPURegister fs); | 794 void Round_w_d(FPURegister fd, FPURegister fs); |
795 void Floor_w_d(FPURegister fd, FPURegister fs); | 795 void Floor_w_d(FPURegister fd, FPURegister fs); |
796 void Ceil_w_d(FPURegister fd, FPURegister fs); | 796 void Ceil_w_d(FPURegister fd, FPURegister fs); |
797 | 797 |
798 void Madd_d(FPURegister fd, | 798 void Madd_d(FPURegister fd, |
799 FPURegister fr, | 799 FPURegister fr, |
800 FPURegister fs, | 800 FPURegister fs, |
801 FPURegister ft, | 801 FPURegister ft, |
802 FPURegister scratch); | 802 FPURegister scratch); |
803 | 803 |
804 // Wrapper function for the different cmp/branch types. | 804 // Wrapper functions for the different cmp/branch types. |
| 805 void BranchFSize(SecondaryField sizeField, Label* target, Label* nan, |
| 806 Condition cc, FPURegister cmp1, FPURegister cmp2, |
| 807 BranchDelaySlot bd = PROTECT); |
| 808 |
805 void BranchF(Label* target, | 809 void BranchF(Label* target, |
806 Label* nan, | 810 Label* nan, |
807 Condition cc, | 811 Condition cc, |
808 FPURegister cmp1, | 812 FPURegister cmp1, |
809 FPURegister cmp2, | 813 FPURegister cmp2, |
810 BranchDelaySlot bd = PROTECT); | 814 BranchDelaySlot bd = PROTECT); |
811 | 815 |
| 816 void BranchFS(Label* target, Label* nan, Condition cc, FPURegister cmp1, |
| 817 FPURegister cmp2, BranchDelaySlot bd = PROTECT); |
| 818 |
812 // Alternate (inline) version for better readability with USE_DELAY_SLOT. | 819 // Alternate (inline) version for better readability with USE_DELAY_SLOT. |
813 inline void BranchF(BranchDelaySlot bd, | 820 inline void BranchF(BranchDelaySlot bd, |
814 Label* target, | 821 Label* target, |
815 Label* nan, | 822 Label* nan, |
816 Condition cc, | 823 Condition cc, |
817 FPURegister cmp1, | 824 FPURegister cmp1, |
818 FPURegister cmp2) { | 825 FPURegister cmp2) { |
819 BranchF(target, nan, cc, cmp1, cmp2, bd); | 826 BranchF(target, nan, cc, cmp1, cmp2, bd); |
820 } | 827 } |
821 | 828 |
| 829 inline void BranchFS(BranchDelaySlot bd, Label* target, Label* nan, |
| 830 Condition cc, FPURegister cmp1, FPURegister cmp2) { |
| 831 BranchFS(target, nan, cc, cmp1, cmp2, bd); |
| 832 } |
| 833 |
822 // Truncates a double using a specific rounding mode, and writes the value | 834 // Truncates a double using a specific rounding mode, and writes the value |
823 // to the result register. | 835 // to the result register. |
824 // The except_flag will contain any exceptions caused by the instruction. | 836 // The except_flag will contain any exceptions caused by the instruction. |
825 // If check_inexact is kDontCheckForInexactConversion, then the inexact | 837 // If check_inexact is kDontCheckForInexactConversion, then the inexact |
826 // exception is masked. | 838 // exception is masked. |
827 void EmitFPUTruncate(FPURoundingMode rounding_mode, | 839 void EmitFPUTruncate(FPURoundingMode rounding_mode, |
828 Register result, | 840 Register result, |
829 DoubleRegister double_input, | 841 DoubleRegister double_input, |
830 Register scratch, | 842 Register scratch, |
831 DoubleRegister double_scratch, | 843 DoubleRegister double_scratch, |
(...skipping 951 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1783 #define CODE_COVERAGE_TOSTRING(x) CODE_COVERAGE_STRINGIFY(x) | 1795 #define CODE_COVERAGE_TOSTRING(x) CODE_COVERAGE_STRINGIFY(x) |
1784 #define __FILE_LINE__ __FILE__ ":" CODE_COVERAGE_TOSTRING(__LINE__) | 1796 #define __FILE_LINE__ __FILE__ ":" CODE_COVERAGE_TOSTRING(__LINE__) |
1785 #define ACCESS_MASM(masm) masm->stop(__FILE_LINE__); masm-> | 1797 #define ACCESS_MASM(masm) masm->stop(__FILE_LINE__); masm-> |
1786 #else | 1798 #else |
1787 #define ACCESS_MASM(masm) masm-> | 1799 #define ACCESS_MASM(masm) masm-> |
1788 #endif | 1800 #endif |
1789 | 1801 |
1790 } } // namespace v8::internal | 1802 } } // namespace v8::internal |
1791 | 1803 |
1792 #endif // V8_MIPS_MACRO_ASSEMBLER_MIPS_H_ | 1804 #endif // V8_MIPS_MACRO_ASSEMBLER_MIPS_H_ |
OLD | NEW |