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

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

Issue 1145223002: MIPS: Add float instructions and test coverage, part two (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Addressed comments Created 5 years, 7 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 | « no previous file | src/mips/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 (c) 1994-2006 Sun Microsystems Inc. 1 // Copyright (c) 1994-2006 Sun Microsystems Inc.
2 // All Rights Reserved. 2 // All Rights Reserved.
3 // 3 //
4 // Redistribution and use in source and binary forms, with or without 4 // Redistribution and use in source and binary forms, with or without
5 // modification, are permitted provided that the following conditions are 5 // modification, are permitted provided that the following conditions are
6 // met: 6 // met:
7 // 7 //
8 // - Redistributions of source code must retain the above copyright notice, 8 // - Redistributions of source code must retain the above copyright notice,
9 // this list of conditions and the following disclaimer. 9 // this list of conditions and the following disclaimer.
10 // 10 //
(...skipping 860 matching lines...) Expand 10 before | Expand all | Expand 10 after
871 void movt_s(FPURegister fd, FPURegister fs, uint16_t cc); 871 void movt_s(FPURegister fd, FPURegister fs, uint16_t cc);
872 void movt_d(FPURegister fd, FPURegister fs, uint16_t cc); 872 void movt_d(FPURegister fd, FPURegister fs, uint16_t cc);
873 void movf_s(FPURegister fd, FPURegister fs, uint16_t cc); 873 void movf_s(FPURegister fd, FPURegister fs, uint16_t cc);
874 void movf_d(FPURegister fd, FPURegister fs, uint16_t cc); 874 void movf_d(FPURegister fd, FPURegister fs, uint16_t cc);
875 void movn_s(FPURegister fd, FPURegister fs, Register rt); 875 void movn_s(FPURegister fd, FPURegister fs, Register rt);
876 void movn_d(FPURegister fd, FPURegister fs, Register rt); 876 void movn_d(FPURegister fd, FPURegister fs, Register rt);
877 // Bit twiddling. 877 // Bit twiddling.
878 void clz(Register rd, Register rs); 878 void clz(Register rd, Register rs);
879 void ins_(Register rt, Register rs, uint16_t pos, uint16_t size); 879 void ins_(Register rt, Register rs, uint16_t pos, uint16_t size);
880 void ext_(Register rt, Register rs, uint16_t pos, uint16_t size); 880 void ext_(Register rt, Register rs, uint16_t pos, uint16_t size);
881 void bitswap(Register rd, Register rt);
881 882
882 // --------Coprocessor-instructions---------------- 883 // --------Coprocessor-instructions----------------
883 884
884 // Load, store, and move. 885 // Load, store, and move.
885 void lwc1(FPURegister fd, const MemOperand& src); 886 void lwc1(FPURegister fd, const MemOperand& src);
886 void ldc1(FPURegister fd, const MemOperand& src); 887 void ldc1(FPURegister fd, const MemOperand& src);
887 888
888 void swc1(FPURegister fs, const MemOperand& dst); 889 void swc1(FPURegister fs, const MemOperand& dst);
889 void sdc1(FPURegister fs, const MemOperand& dst); 890 void sdc1(FPURegister fs, const MemOperand& dst);
890 891
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after
939 void cvt_l_d(FPURegister fd, FPURegister fs); 940 void cvt_l_d(FPURegister fd, FPURegister fs);
940 void trunc_l_s(FPURegister fd, FPURegister fs); 941 void trunc_l_s(FPURegister fd, FPURegister fs);
941 void trunc_l_d(FPURegister fd, FPURegister fs); 942 void trunc_l_d(FPURegister fd, FPURegister fs);
942 void round_l_s(FPURegister fd, FPURegister fs); 943 void round_l_s(FPURegister fd, FPURegister fs);
943 void round_l_d(FPURegister fd, FPURegister fs); 944 void round_l_d(FPURegister fd, FPURegister fs);
944 void floor_l_s(FPURegister fd, FPURegister fs); 945 void floor_l_s(FPURegister fd, FPURegister fs);
945 void floor_l_d(FPURegister fd, FPURegister fs); 946 void floor_l_d(FPURegister fd, FPURegister fs);
946 void ceil_l_s(FPURegister fd, FPURegister fs); 947 void ceil_l_s(FPURegister fd, FPURegister fs);
947 void ceil_l_d(FPURegister fd, FPURegister fs); 948 void ceil_l_d(FPURegister fd, FPURegister fs);
948 949
950 void class_s(FPURegister fd, FPURegister fs);
951 void class_d(FPURegister fd, FPURegister fs);
952
949 void min(SecondaryField fmt, FPURegister fd, FPURegister fs, FPURegister ft); 953 void min(SecondaryField fmt, FPURegister fd, FPURegister fs, FPURegister ft);
950 void mina(SecondaryField fmt, FPURegister fd, FPURegister fs, FPURegister ft); 954 void mina(SecondaryField fmt, FPURegister fd, FPURegister fs, FPURegister ft);
951 void max(SecondaryField fmt, FPURegister fd, FPURegister fs, FPURegister ft); 955 void max(SecondaryField fmt, FPURegister fd, FPURegister fs, FPURegister ft);
952 void maxa(SecondaryField fmt, FPURegister fd, FPURegister fs, FPURegister ft); 956 void maxa(SecondaryField fmt, FPURegister fd, FPURegister fs, FPURegister ft);
953 void min_s(FPURegister fd, FPURegister fs, FPURegister ft); 957 void min_s(FPURegister fd, FPURegister fs, FPURegister ft);
954 void min_d(FPURegister fd, FPURegister fs, FPURegister ft); 958 void min_d(FPURegister fd, FPURegister fs, FPURegister ft);
955 void max_s(FPURegister fd, FPURegister fs, FPURegister ft); 959 void max_s(FPURegister fd, FPURegister fs, FPURegister ft);
956 void max_d(FPURegister fd, FPURegister fs, FPURegister ft); 960 void max_d(FPURegister fd, FPURegister fs, FPURegister ft);
957 void mina_s(FPURegister fd, FPURegister fs, FPURegister ft); 961 void mina_s(FPURegister fd, FPURegister fs, FPURegister ft);
958 void mina_d(FPURegister fd, FPURegister fs, FPURegister ft); 962 void mina_d(FPURegister fd, FPURegister fs, FPURegister ft);
959 void maxa_s(FPURegister fd, FPURegister fs, FPURegister ft); 963 void maxa_s(FPURegister fd, FPURegister fs, FPURegister ft);
960 void maxa_d(FPURegister fd, FPURegister fs, FPURegister ft); 964 void maxa_d(FPURegister fd, FPURegister fs, FPURegister ft);
961 965
962 void cvt_s_w(FPURegister fd, FPURegister fs); 966 void cvt_s_w(FPURegister fd, FPURegister fs);
963 void cvt_s_l(FPURegister fd, FPURegister fs); 967 void cvt_s_l(FPURegister fd, FPURegister fs);
964 void cvt_s_d(FPURegister fd, FPURegister fs); 968 void cvt_s_d(FPURegister fd, FPURegister fs);
965 969
966 void cvt_d_w(FPURegister fd, FPURegister fs); 970 void cvt_d_w(FPURegister fd, FPURegister fs);
967 void cvt_d_l(FPURegister fd, FPURegister fs); 971 void cvt_d_l(FPURegister fd, FPURegister fs);
968 void cvt_d_s(FPURegister fd, FPURegister fs); 972 void cvt_d_s(FPURegister fd, FPURegister fs);
969 973
970 // Conditions and branches for MIPSr6. 974 // Conditions and branches for MIPSr6.
971 void cmp(FPUCondition cond, SecondaryField fmt, 975 void cmp(FPUCondition cond, SecondaryField fmt,
972 FPURegister fd, FPURegister ft, FPURegister fs); 976 FPURegister fd, FPURegister ft, FPURegister fs);
977 void cmp_s(FPUCondition cond, FPURegister fd, FPURegister fs, FPURegister ft);
978 void cmp_d(FPUCondition cond, FPURegister fd, FPURegister fs, FPURegister ft);
973 979
974 void bc1eqz(int16_t offset, FPURegister ft); 980 void bc1eqz(int16_t offset, FPURegister ft);
975 void bc1eqz(Label* L, FPURegister ft) { 981 void bc1eqz(Label* L, FPURegister ft) {
976 bc1eqz(branch_offset(L, false)>>2, ft); 982 bc1eqz(branch_offset(L, false)>>2, ft);
977 } 983 }
978 void bc1nez(int16_t offset, FPURegister ft); 984 void bc1nez(int16_t offset, FPURegister ft);
979 void bc1nez(Label* L, FPURegister ft) { 985 void bc1nez(Label* L, FPURegister ft) {
980 bc1nez(branch_offset(L, false)>>2, ft); 986 bc1nez(branch_offset(L, false)>>2, ft);
981 } 987 }
982 988
983 // Conditions and branches for non MIPSr6. 989 // Conditions and branches for non MIPSr6.
984 void c(FPUCondition cond, SecondaryField fmt, 990 void c(FPUCondition cond, SecondaryField fmt,
985 FPURegister ft, FPURegister fs, uint16_t cc = 0); 991 FPURegister ft, FPURegister fs, uint16_t cc = 0);
992 void c_s(FPUCondition cond, FPURegister ft, FPURegister fs, uint16_t cc = 0);
993 void c_d(FPUCondition cond, FPURegister ft, FPURegister fs, uint16_t cc = 0);
986 994
987 void bc1f(int16_t offset, uint16_t cc = 0); 995 void bc1f(int16_t offset, uint16_t cc = 0);
988 void bc1f(Label* L, uint16_t cc = 0) { bc1f(branch_offset(L, false)>>2, cc); } 996 void bc1f(Label* L, uint16_t cc = 0) { bc1f(branch_offset(L, false)>>2, cc); }
989 void bc1t(int16_t offset, uint16_t cc = 0); 997 void bc1t(int16_t offset, uint16_t cc = 0);
990 void bc1t(Label* L, uint16_t cc = 0) { bc1t(branch_offset(L, false)>>2, cc); } 998 void bc1t(Label* L, uint16_t cc = 0) { bc1t(branch_offset(L, false)>>2, cc); }
991 void fcmp(FPURegister src1, const double src2, FPUCondition cond); 999 void fcmp(FPURegister src1, const double src2, FPUCondition cond);
992 1000
993 // Check the code size generated from label to here. 1001 // Check the code size generated from label to here.
994 int SizeOfCodeGeneratedSince(Label* label) { 1002 int SizeOfCodeGeneratedSince(Label* label) {
995 return pc_offset() - label->pos(); 1003 return pc_offset() - label->pos();
(...skipping 437 matching lines...) Expand 10 before | Expand all | Expand 10 after
1433 class EnsureSpace BASE_EMBEDDED { 1441 class EnsureSpace BASE_EMBEDDED {
1434 public: 1442 public:
1435 explicit EnsureSpace(Assembler* assembler) { 1443 explicit EnsureSpace(Assembler* assembler) {
1436 assembler->CheckBuffer(); 1444 assembler->CheckBuffer();
1437 } 1445 }
1438 }; 1446 };
1439 1447
1440 } } // namespace v8::internal 1448 } } // namespace v8::internal
1441 1449
1442 #endif // V8_ARM_ASSEMBLER_MIPS_H_ 1450 #endif // V8_ARM_ASSEMBLER_MIPS_H_
OLDNEW
« no previous file with comments | « no previous file | src/mips/assembler-mips.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698