OLD | NEW |
1 // Copyright 2014 the V8 project authors. All rights reserved. | 1 // Copyright 2014 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 #include "src/ast/scopes.h" | 5 #include "src/ast/scopes.h" |
6 #include "src/compiler/code-generator.h" | 6 #include "src/compiler/code-generator.h" |
7 #include "src/compiler/code-generator-impl.h" | 7 #include "src/compiler/code-generator-impl.h" |
8 #include "src/compiler/gap-resolver.h" | 8 #include "src/compiler/gap-resolver.h" |
9 #include "src/compiler/node-matchers.h" | 9 #include "src/compiler/node-matchers.h" |
10 #include "src/compiler/osr.h" | 10 #include "src/compiler/osr.h" |
(...skipping 1148 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1159 break; | 1159 break; |
1160 case kMipsLb: | 1160 case kMipsLb: |
1161 __ lb(i.OutputRegister(), i.MemoryOperand()); | 1161 __ lb(i.OutputRegister(), i.MemoryOperand()); |
1162 break; | 1162 break; |
1163 case kMipsSb: | 1163 case kMipsSb: |
1164 __ sb(i.InputRegister(2), i.MemoryOperand()); | 1164 __ sb(i.InputRegister(2), i.MemoryOperand()); |
1165 break; | 1165 break; |
1166 case kMipsLhu: | 1166 case kMipsLhu: |
1167 __ lhu(i.OutputRegister(), i.MemoryOperand()); | 1167 __ lhu(i.OutputRegister(), i.MemoryOperand()); |
1168 break; | 1168 break; |
| 1169 case kMipsUlhu: |
| 1170 __ Ulhu(i.OutputRegister(), i.MemoryOperand()); |
| 1171 break; |
1169 case kMipsLh: | 1172 case kMipsLh: |
1170 __ lh(i.OutputRegister(), i.MemoryOperand()); | 1173 __ lh(i.OutputRegister(), i.MemoryOperand()); |
1171 break; | 1174 break; |
| 1175 case kMipsUlh: |
| 1176 __ Ulh(i.OutputRegister(), i.MemoryOperand()); |
| 1177 break; |
1172 case kMipsSh: | 1178 case kMipsSh: |
1173 __ sh(i.InputRegister(2), i.MemoryOperand()); | 1179 __ sh(i.InputRegister(2), i.MemoryOperand()); |
1174 break; | 1180 break; |
| 1181 case kMipsUsh: |
| 1182 __ Ush(i.InputRegister(2), i.MemoryOperand(), kScratchReg); |
| 1183 break; |
1175 case kMipsLw: | 1184 case kMipsLw: |
1176 __ lw(i.OutputRegister(), i.MemoryOperand()); | 1185 __ lw(i.OutputRegister(), i.MemoryOperand()); |
1177 break; | 1186 break; |
| 1187 case kMipsUlw: |
| 1188 __ Ulw(i.OutputRegister(), i.MemoryOperand()); |
| 1189 break; |
1178 case kMipsSw: | 1190 case kMipsSw: |
1179 __ sw(i.InputRegister(2), i.MemoryOperand()); | 1191 __ sw(i.InputRegister(2), i.MemoryOperand()); |
1180 break; | 1192 break; |
| 1193 case kMipsUsw: |
| 1194 __ Usw(i.InputRegister(2), i.MemoryOperand()); |
| 1195 break; |
1181 case kMipsLwc1: { | 1196 case kMipsLwc1: { |
1182 __ lwc1(i.OutputSingleRegister(), i.MemoryOperand()); | 1197 __ lwc1(i.OutputSingleRegister(), i.MemoryOperand()); |
1183 break; | 1198 break; |
1184 } | 1199 } |
| 1200 case kMipsUlwc1: { |
| 1201 __ lwc1(i.OutputSingleRegister(), i.MemoryOperand()); |
| 1202 break; |
| 1203 } |
1185 case kMipsSwc1: { | 1204 case kMipsSwc1: { |
1186 size_t index = 0; | 1205 size_t index = 0; |
1187 MemOperand operand = i.MemoryOperand(&index); | 1206 MemOperand operand = i.MemoryOperand(&index); |
1188 __ swc1(i.InputSingleRegister(index), operand); | 1207 __ swc1(i.InputSingleRegister(index), operand); |
1189 break; | 1208 break; |
1190 } | 1209 } |
| 1210 case kMipsUswc1: { |
| 1211 size_t index = 0; |
| 1212 MemOperand operand = i.MemoryOperand(&index); |
| 1213 __ Uswc1(i.InputSingleRegister(index), operand, kScratchReg); |
| 1214 break; |
| 1215 } |
1191 case kMipsLdc1: | 1216 case kMipsLdc1: |
1192 __ ldc1(i.OutputDoubleRegister(), i.MemoryOperand()); | 1217 __ ldc1(i.OutputDoubleRegister(), i.MemoryOperand()); |
1193 break; | 1218 break; |
| 1219 case kMipsUldc1: |
| 1220 __ Uldc1(i.OutputDoubleRegister(), i.MemoryOperand(), kScratchReg); |
| 1221 break; |
1194 case kMipsSdc1: | 1222 case kMipsSdc1: |
1195 __ sdc1(i.InputDoubleRegister(2), i.MemoryOperand()); | 1223 __ sdc1(i.InputDoubleRegister(2), i.MemoryOperand()); |
1196 break; | 1224 break; |
| 1225 case kMipsUsdc1: |
| 1226 __ Usdc1(i.InputDoubleRegister(2), i.MemoryOperand(), kScratchReg); |
| 1227 break; |
1197 case kMipsPush: | 1228 case kMipsPush: |
1198 if (instr->InputAt(0)->IsDoubleRegister()) { | 1229 if (instr->InputAt(0)->IsDoubleRegister()) { |
1199 __ sdc1(i.InputDoubleRegister(0), MemOperand(sp, -kDoubleSize)); | 1230 __ sdc1(i.InputDoubleRegister(0), MemOperand(sp, -kDoubleSize)); |
1200 __ Subu(sp, sp, Operand(kDoubleSize)); | 1231 __ Subu(sp, sp, Operand(kDoubleSize)); |
1201 frame_access_state()->IncreaseSPDelta(kDoubleSize / kPointerSize); | 1232 frame_access_state()->IncreaseSPDelta(kDoubleSize / kPointerSize); |
1202 } else { | 1233 } else { |
1203 __ Push(i.InputRegister(0)); | 1234 __ Push(i.InputRegister(0)); |
1204 frame_access_state()->IncreaseSPDelta(1); | 1235 frame_access_state()->IncreaseSPDelta(1); |
1205 } | 1236 } |
1206 break; | 1237 break; |
(...skipping 658 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1865 padding_size -= v8::internal::Assembler::kInstrSize; | 1896 padding_size -= v8::internal::Assembler::kInstrSize; |
1866 } | 1897 } |
1867 } | 1898 } |
1868 } | 1899 } |
1869 | 1900 |
1870 #undef __ | 1901 #undef __ |
1871 | 1902 |
1872 } // namespace compiler | 1903 } // namespace compiler |
1873 } // namespace internal | 1904 } // namespace internal |
1874 } // namespace v8 | 1905 } // namespace v8 |
OLD | NEW |