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

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

Issue 2801683003: MIPS[64]: Support for some SIMD operations (8) (Closed)
Patch Set: Rebase Created 3 years, 6 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/compiler/mips64/instruction-selector-mips64.cc ('k') | 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 1086 matching lines...) Expand 10 before | Expand all | Expand 10 after
1097 bc1f(shifted_branch_offset(L), cc); 1097 bc1f(shifted_branch_offset(L), cc);
1098 } 1098 }
1099 void bc1t(int16_t offset, uint16_t cc = 0); 1099 void bc1t(int16_t offset, uint16_t cc = 0);
1100 inline void bc1t(Label* L, uint16_t cc = 0) { 1100 inline void bc1t(Label* L, uint16_t cc = 0) {
1101 bc1t(shifted_branch_offset(L), cc); 1101 bc1t(shifted_branch_offset(L), cc);
1102 } 1102 }
1103 void fcmp(FPURegister src1, const double src2, FPUCondition cond); 1103 void fcmp(FPURegister src1, const double src2, FPUCondition cond);
1104 1104
1105 // MSA instructions 1105 // MSA instructions
1106 void bz_v(MSARegister wt, int16_t offset); 1106 void bz_v(MSARegister wt, int16_t offset);
1107 inline void bz_v(MSARegister wt, Label* L) {
1108 bz_v(wt, shifted_branch_offset(L));
1109 }
1107 void bz_b(MSARegister wt, int16_t offset); 1110 void bz_b(MSARegister wt, int16_t offset);
1111 inline void bz_b(MSARegister wt, Label* L) {
1112 bz_b(wt, shifted_branch_offset(L));
1113 }
1108 void bz_h(MSARegister wt, int16_t offset); 1114 void bz_h(MSARegister wt, int16_t offset);
1115 inline void bz_h(MSARegister wt, Label* L) {
1116 bz_h(wt, shifted_branch_offset(L));
1117 }
1109 void bz_w(MSARegister wt, int16_t offset); 1118 void bz_w(MSARegister wt, int16_t offset);
1119 inline void bz_w(MSARegister wt, Label* L) {
1120 bz_w(wt, shifted_branch_offset(L));
1121 }
1110 void bz_d(MSARegister wt, int16_t offset); 1122 void bz_d(MSARegister wt, int16_t offset);
1123 inline void bz_d(MSARegister wt, Label* L) {
1124 bz_d(wt, shifted_branch_offset(L));
1125 }
1111 void bnz_v(MSARegister wt, int16_t offset); 1126 void bnz_v(MSARegister wt, int16_t offset);
1127 inline void bnz_v(MSARegister wt, Label* L) {
1128 bnz_v(wt, shifted_branch_offset(L));
1129 }
1112 void bnz_b(MSARegister wt, int16_t offset); 1130 void bnz_b(MSARegister wt, int16_t offset);
1131 inline void bnz_b(MSARegister wt, Label* L) {
1132 bnz_b(wt, shifted_branch_offset(L));
1133 }
1113 void bnz_h(MSARegister wt, int16_t offset); 1134 void bnz_h(MSARegister wt, int16_t offset);
1135 inline void bnz_h(MSARegister wt, Label* L) {
1136 bnz_h(wt, shifted_branch_offset(L));
1137 }
1114 void bnz_w(MSARegister wt, int16_t offset); 1138 void bnz_w(MSARegister wt, int16_t offset);
1139 inline void bnz_w(MSARegister wt, Label* L) {
1140 bnz_w(wt, shifted_branch_offset(L));
1141 }
1115 void bnz_d(MSARegister wt, int16_t offset); 1142 void bnz_d(MSARegister wt, int16_t offset);
1143 inline void bnz_d(MSARegister wt, Label* L) {
1144 bnz_d(wt, shifted_branch_offset(L));
1145 }
1116 1146
1117 void ld_b(MSARegister wd, const MemOperand& rs); 1147 void ld_b(MSARegister wd, const MemOperand& rs);
1118 void ld_h(MSARegister wd, const MemOperand& rs); 1148 void ld_h(MSARegister wd, const MemOperand& rs);
1119 void ld_w(MSARegister wd, const MemOperand& rs); 1149 void ld_w(MSARegister wd, const MemOperand& rs);
1120 void ld_d(MSARegister wd, const MemOperand& rs); 1150 void ld_d(MSARegister wd, const MemOperand& rs);
1121 void st_b(MSARegister wd, const MemOperand& rs); 1151 void st_b(MSARegister wd, const MemOperand& rs);
1122 void st_h(MSARegister wd, const MemOperand& rs); 1152 void st_h(MSARegister wd, const MemOperand& rs);
1123 void st_w(MSARegister wd, const MemOperand& rs); 1153 void st_w(MSARegister wd, const MemOperand& rs);
1124 void st_d(MSARegister wd, const MemOperand& rs); 1154 void st_d(MSARegister wd, const MemOperand& rs);
1125 1155
(...skipping 634 matching lines...) Expand 10 before | Expand all | Expand 10 after
1760 static void instr_at_put(byte* pc, Instr instr) { 1790 static void instr_at_put(byte* pc, Instr instr) {
1761 *reinterpret_cast<Instr*>(pc) = instr; 1791 *reinterpret_cast<Instr*>(pc) = instr;
1762 } 1792 }
1763 Instr instr_at(int pos) { return *reinterpret_cast<Instr*>(buffer_ + pos); } 1793 Instr instr_at(int pos) { return *reinterpret_cast<Instr*>(buffer_ + pos); }
1764 void instr_at_put(int pos, Instr instr) { 1794 void instr_at_put(int pos, Instr instr) {
1765 *reinterpret_cast<Instr*>(buffer_ + pos) = instr; 1795 *reinterpret_cast<Instr*>(buffer_ + pos) = instr;
1766 } 1796 }
1767 1797
1768 // Check if an instruction is a branch of some kind. 1798 // Check if an instruction is a branch of some kind.
1769 static bool IsBranch(Instr instr); 1799 static bool IsBranch(Instr instr);
1800 static bool IsMsaBranch(Instr instr);
1770 static bool IsBc(Instr instr); 1801 static bool IsBc(Instr instr);
1771 static bool IsBzc(Instr instr); 1802 static bool IsBzc(Instr instr);
1772 static bool IsBeq(Instr instr); 1803 static bool IsBeq(Instr instr);
1773 static bool IsBne(Instr instr); 1804 static bool IsBne(Instr instr);
1774 static bool IsBeqzc(Instr instr); 1805 static bool IsBeqzc(Instr instr);
1775 static bool IsBnezc(Instr instr); 1806 static bool IsBnezc(Instr instr);
1776 static bool IsBeqc(Instr instr); 1807 static bool IsBeqc(Instr instr);
1777 static bool IsBnec(Instr instr); 1808 static bool IsBnec(Instr instr);
1778 static bool IsJicOrJialc(Instr instr); 1809 static bool IsJicOrJialc(Instr instr);
1779 1810
(...skipping 440 matching lines...) Expand 10 before | Expand all | Expand 10 after
2220 public: 2251 public:
2221 explicit EnsureSpace(Assembler* assembler) { 2252 explicit EnsureSpace(Assembler* assembler) {
2222 assembler->CheckBuffer(); 2253 assembler->CheckBuffer();
2223 } 2254 }
2224 }; 2255 };
2225 2256
2226 } // namespace internal 2257 } // namespace internal
2227 } // namespace v8 2258 } // namespace v8
2228 2259
2229 #endif // V8_ARM_ASSEMBLER_MIPS_H_ 2260 #endif // V8_ARM_ASSEMBLER_MIPS_H_
OLDNEW
« no previous file with comments | « src/compiler/mips64/instruction-selector-mips64.cc ('k') | src/mips/assembler-mips.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698