| 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/base/adapters.h" | 5 #include "src/base/adapters.h" |
| 6 #include "src/compiler/instruction-selector-impl.h" | 6 #include "src/compiler/instruction-selector-impl.h" |
| 7 #include "src/compiler/node-matchers.h" | 7 #include "src/compiler/node-matchers.h" |
| 8 #include "src/compiler/node-properties.h" | 8 #include "src/compiler/node-properties.h" |
| 9 #include "src/ppc/frames-ppc.h" | 9 #include "src/ppc/frames-ppc.h" |
| 10 | 10 |
| (...skipping 206 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 217 case MachineRepresentation::kTaggedPointer: // Fall through. | 217 case MachineRepresentation::kTaggedPointer: // Fall through. |
| 218 case MachineRepresentation::kTagged: // Fall through. | 218 case MachineRepresentation::kTagged: // Fall through. |
| 219 case MachineRepresentation::kWord64: | 219 case MachineRepresentation::kWord64: |
| 220 opcode = kPPC_LoadWord64; | 220 opcode = kPPC_LoadWord64; |
| 221 mode = kInt16Imm_4ByteAligned; | 221 mode = kInt16Imm_4ByteAligned; |
| 222 break; | 222 break; |
| 223 #else | 223 #else |
| 224 case MachineRepresentation::kWord64: // Fall through. | 224 case MachineRepresentation::kWord64: // Fall through. |
| 225 #endif | 225 #endif |
| 226 case MachineRepresentation::kSimd128: // Fall through. | 226 case MachineRepresentation::kSimd128: // Fall through. |
| 227 case MachineRepresentation::kSimd1x4: // Fall through. | |
| 228 case MachineRepresentation::kSimd1x8: // Fall through. | |
| 229 case MachineRepresentation::kSimd1x16: // Fall through. | |
| 230 case MachineRepresentation::kNone: | 227 case MachineRepresentation::kNone: |
| 231 UNREACHABLE(); | 228 UNREACHABLE(); |
| 232 return; | 229 return; |
| 233 } | 230 } |
| 234 if (g.CanBeImmediate(offset, mode)) { | 231 if (g.CanBeImmediate(offset, mode)) { |
| 235 Emit(opcode | AddressingModeField::encode(kMode_MRI), | 232 Emit(opcode | AddressingModeField::encode(kMode_MRI), |
| 236 g.DefineAsRegister(node), g.UseRegister(base), g.UseImmediate(offset)); | 233 g.DefineAsRegister(node), g.UseRegister(base), g.UseImmediate(offset)); |
| 237 } else if (g.CanBeImmediate(base, mode)) { | 234 } else if (g.CanBeImmediate(base, mode)) { |
| 238 Emit(opcode | AddressingModeField::encode(kMode_MRI), | 235 Emit(opcode | AddressingModeField::encode(kMode_MRI), |
| 239 g.DefineAsRegister(node), g.UseRegister(offset), g.UseImmediate(base)); | 236 g.DefineAsRegister(node), g.UseRegister(offset), g.UseImmediate(base)); |
| (...skipping 89 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 329 case MachineRepresentation::kTaggedPointer: // Fall through. | 326 case MachineRepresentation::kTaggedPointer: // Fall through. |
| 330 case MachineRepresentation::kTagged: // Fall through. | 327 case MachineRepresentation::kTagged: // Fall through. |
| 331 case MachineRepresentation::kWord64: | 328 case MachineRepresentation::kWord64: |
| 332 opcode = kPPC_StoreWord64; | 329 opcode = kPPC_StoreWord64; |
| 333 mode = kInt16Imm_4ByteAligned; | 330 mode = kInt16Imm_4ByteAligned; |
| 334 break; | 331 break; |
| 335 #else | 332 #else |
| 336 case MachineRepresentation::kWord64: // Fall through. | 333 case MachineRepresentation::kWord64: // Fall through. |
| 337 #endif | 334 #endif |
| 338 case MachineRepresentation::kSimd128: // Fall through. | 335 case MachineRepresentation::kSimd128: // Fall through. |
| 339 case MachineRepresentation::kSimd1x4: // Fall through. | |
| 340 case MachineRepresentation::kSimd1x8: // Fall through. | |
| 341 case MachineRepresentation::kSimd1x16: // Fall through. | |
| 342 case MachineRepresentation::kNone: | 336 case MachineRepresentation::kNone: |
| 343 UNREACHABLE(); | 337 UNREACHABLE(); |
| 344 return; | 338 return; |
| 345 } | 339 } |
| 346 if (g.CanBeImmediate(offset, mode)) { | 340 if (g.CanBeImmediate(offset, mode)) { |
| 347 Emit(opcode | AddressingModeField::encode(kMode_MRI), g.NoOutput(), | 341 Emit(opcode | AddressingModeField::encode(kMode_MRI), g.NoOutput(), |
| 348 g.UseRegister(base), g.UseImmediate(offset), g.UseRegister(value)); | 342 g.UseRegister(base), g.UseImmediate(offset), g.UseRegister(value)); |
| 349 } else if (g.CanBeImmediate(base, mode)) { | 343 } else if (g.CanBeImmediate(base, mode)) { |
| 350 Emit(opcode | AddressingModeField::encode(kMode_MRI), g.NoOutput(), | 344 Emit(opcode | AddressingModeField::encode(kMode_MRI), g.NoOutput(), |
| 351 g.UseRegister(offset), g.UseImmediate(base), g.UseRegister(value)); | 345 g.UseRegister(offset), g.UseImmediate(base), g.UseRegister(value)); |
| (...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 396 opcode = kCheckedLoadFloat64; | 390 opcode = kCheckedLoadFloat64; |
| 397 break; | 391 break; |
| 398 case MachineRepresentation::kBit: // Fall through. | 392 case MachineRepresentation::kBit: // Fall through. |
| 399 case MachineRepresentation::kTaggedSigned: // Fall through. | 393 case MachineRepresentation::kTaggedSigned: // Fall through. |
| 400 case MachineRepresentation::kTaggedPointer: // Fall through. | 394 case MachineRepresentation::kTaggedPointer: // Fall through. |
| 401 case MachineRepresentation::kTagged: // Fall through. | 395 case MachineRepresentation::kTagged: // Fall through. |
| 402 #if !V8_TARGET_ARCH_PPC64 | 396 #if !V8_TARGET_ARCH_PPC64 |
| 403 case MachineRepresentation::kWord64: // Fall through. | 397 case MachineRepresentation::kWord64: // Fall through. |
| 404 #endif | 398 #endif |
| 405 case MachineRepresentation::kSimd128: // Fall through. | 399 case MachineRepresentation::kSimd128: // Fall through. |
| 406 case MachineRepresentation::kSimd1x4: // Fall through. | |
| 407 case MachineRepresentation::kSimd1x8: // Fall through. | |
| 408 case MachineRepresentation::kSimd1x16: // Fall through. | |
| 409 case MachineRepresentation::kNone: | 400 case MachineRepresentation::kNone: |
| 410 UNREACHABLE(); | 401 UNREACHABLE(); |
| 411 return; | 402 return; |
| 412 } | 403 } |
| 413 AddressingMode addressingMode = kMode_MRR; | 404 AddressingMode addressingMode = kMode_MRR; |
| 414 Emit(opcode | AddressingModeField::encode(addressingMode), | 405 Emit(opcode | AddressingModeField::encode(addressingMode), |
| 415 g.DefineAsRegister(node), g.UseRegister(base), g.UseRegister(offset), | 406 g.DefineAsRegister(node), g.UseRegister(base), g.UseRegister(offset), |
| 416 g.UseOperand(length, kInt16Imm_Unsigned)); | 407 g.UseOperand(length, kInt16Imm_Unsigned)); |
| 417 } | 408 } |
| 418 | 409 |
| (...skipping 28 matching lines...) Expand all Loading... |
| 447 opcode = kCheckedStoreFloat64; | 438 opcode = kCheckedStoreFloat64; |
| 448 break; | 439 break; |
| 449 case MachineRepresentation::kBit: // Fall through. | 440 case MachineRepresentation::kBit: // Fall through. |
| 450 case MachineRepresentation::kTaggedSigned: // Fall through. | 441 case MachineRepresentation::kTaggedSigned: // Fall through. |
| 451 case MachineRepresentation::kTaggedPointer: // Fall through. | 442 case MachineRepresentation::kTaggedPointer: // Fall through. |
| 452 case MachineRepresentation::kTagged: // Fall through. | 443 case MachineRepresentation::kTagged: // Fall through. |
| 453 #if !V8_TARGET_ARCH_PPC64 | 444 #if !V8_TARGET_ARCH_PPC64 |
| 454 case MachineRepresentation::kWord64: // Fall through. | 445 case MachineRepresentation::kWord64: // Fall through. |
| 455 #endif | 446 #endif |
| 456 case MachineRepresentation::kSimd128: // Fall through. | 447 case MachineRepresentation::kSimd128: // Fall through. |
| 457 case MachineRepresentation::kSimd1x4: // Fall through. | |
| 458 case MachineRepresentation::kSimd1x8: // Fall through. | |
| 459 case MachineRepresentation::kSimd1x16: // Fall through. | |
| 460 case MachineRepresentation::kNone: | 448 case MachineRepresentation::kNone: |
| 461 UNREACHABLE(); | 449 UNREACHABLE(); |
| 462 return; | 450 return; |
| 463 } | 451 } |
| 464 AddressingMode addressingMode = kMode_MRR; | 452 AddressingMode addressingMode = kMode_MRR; |
| 465 Emit(opcode | AddressingModeField::encode(addressingMode), g.NoOutput(), | 453 Emit(opcode | AddressingModeField::encode(addressingMode), g.NoOutput(), |
| 466 g.UseRegister(base), g.UseRegister(offset), | 454 g.UseRegister(base), g.UseRegister(offset), |
| 467 g.UseOperand(length, kInt16Imm_Unsigned), g.UseRegister(value)); | 455 g.UseOperand(length, kInt16Imm_Unsigned), g.UseRegister(value)); |
| 468 } | 456 } |
| 469 | 457 |
| (...skipping 1728 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2198 // static | 2186 // static |
| 2199 MachineOperatorBuilder::AlignmentRequirements | 2187 MachineOperatorBuilder::AlignmentRequirements |
| 2200 InstructionSelector::AlignmentRequirements() { | 2188 InstructionSelector::AlignmentRequirements() { |
| 2201 return MachineOperatorBuilder::AlignmentRequirements:: | 2189 return MachineOperatorBuilder::AlignmentRequirements:: |
| 2202 FullUnalignedAccessSupport(); | 2190 FullUnalignedAccessSupport(); |
| 2203 } | 2191 } |
| 2204 | 2192 |
| 2205 } // namespace compiler | 2193 } // namespace compiler |
| 2206 } // namespace internal | 2194 } // namespace internal |
| 2207 } // namespace v8 | 2195 } // namespace v8 |
| OLD | NEW |