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