| 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 |