Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(207)

Side by Side Diff: src/mips/macro-assembler-mips.h

Issue 1046953004: MIPS: [turbofan] Add backend support for float32 operations. (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Created 5 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « src/mips/assembler-mips.cc ('k') | src/mips/macro-assembler-mips.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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
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
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_
OLDNEW
« no previous file with comments | « src/mips/assembler-mips.cc ('k') | src/mips/macro-assembler-mips.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698