| 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 198 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 209 case MachineRepresentation::kTaggedPointer: // Fall through. | 209 case MachineRepresentation::kTaggedPointer: // Fall through. |
| 210 case MachineRepresentation::kTagged: // Fall through. | 210 case MachineRepresentation::kTagged: // Fall through. |
| 211 case MachineRepresentation::kWord64: | 211 case MachineRepresentation::kWord64: |
| 212 opcode = kPPC_LoadWord64; | 212 opcode = kPPC_LoadWord64; |
| 213 mode = kInt16Imm_4ByteAligned; | 213 mode = kInt16Imm_4ByteAligned; |
| 214 break; | 214 break; |
| 215 #else | 215 #else |
| 216 case MachineRepresentation::kWord64: // Fall through. | 216 case MachineRepresentation::kWord64: // Fall through. |
| 217 #endif | 217 #endif |
| 218 case MachineRepresentation::kSimd128: // Fall through. | 218 case MachineRepresentation::kSimd128: // Fall through. |
| 219 case MachineRepresentation::kSimd1x4: // Fall through. |
| 220 case MachineRepresentation::kSimd1x8: // Fall through. |
| 221 case MachineRepresentation::kSimd1x16: // Fall through. |
| 219 case MachineRepresentation::kNone: | 222 case MachineRepresentation::kNone: |
| 220 UNREACHABLE(); | 223 UNREACHABLE(); |
| 221 return; | 224 return; |
| 222 } | 225 } |
| 223 if (g.CanBeImmediate(offset, mode)) { | 226 if (g.CanBeImmediate(offset, mode)) { |
| 224 Emit(opcode | AddressingModeField::encode(kMode_MRI), | 227 Emit(opcode | AddressingModeField::encode(kMode_MRI), |
| 225 g.DefineAsRegister(node), g.UseRegister(base), g.UseImmediate(offset)); | 228 g.DefineAsRegister(node), g.UseRegister(base), g.UseImmediate(offset)); |
| 226 } else if (g.CanBeImmediate(base, mode)) { | 229 } else if (g.CanBeImmediate(base, mode)) { |
| 227 Emit(opcode | AddressingModeField::encode(kMode_MRI), | 230 Emit(opcode | AddressingModeField::encode(kMode_MRI), |
| 228 g.DefineAsRegister(node), g.UseRegister(offset), g.UseImmediate(base)); | 231 g.DefineAsRegister(node), g.UseRegister(offset), g.UseImmediate(base)); |
| (...skipping 89 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 318 case MachineRepresentation::kTaggedPointer: // Fall through. | 321 case MachineRepresentation::kTaggedPointer: // Fall through. |
| 319 case MachineRepresentation::kTagged: // Fall through. | 322 case MachineRepresentation::kTagged: // Fall through. |
| 320 case MachineRepresentation::kWord64: | 323 case MachineRepresentation::kWord64: |
| 321 opcode = kPPC_StoreWord64; | 324 opcode = kPPC_StoreWord64; |
| 322 mode = kInt16Imm_4ByteAligned; | 325 mode = kInt16Imm_4ByteAligned; |
| 323 break; | 326 break; |
| 324 #else | 327 #else |
| 325 case MachineRepresentation::kWord64: // Fall through. | 328 case MachineRepresentation::kWord64: // Fall through. |
| 326 #endif | 329 #endif |
| 327 case MachineRepresentation::kSimd128: // Fall through. | 330 case MachineRepresentation::kSimd128: // Fall through. |
| 331 case MachineRepresentation::kSimd1x4: // Fall through. |
| 332 case MachineRepresentation::kSimd1x8: // Fall through. |
| 333 case MachineRepresentation::kSimd1x16: // Fall through. |
| 328 case MachineRepresentation::kNone: | 334 case MachineRepresentation::kNone: |
| 329 UNREACHABLE(); | 335 UNREACHABLE(); |
| 330 return; | 336 return; |
| 331 } | 337 } |
| 332 if (g.CanBeImmediate(offset, mode)) { | 338 if (g.CanBeImmediate(offset, mode)) { |
| 333 Emit(opcode | AddressingModeField::encode(kMode_MRI), g.NoOutput(), | 339 Emit(opcode | AddressingModeField::encode(kMode_MRI), g.NoOutput(), |
| 334 g.UseRegister(base), g.UseImmediate(offset), g.UseRegister(value)); | 340 g.UseRegister(base), g.UseImmediate(offset), g.UseRegister(value)); |
| 335 } else if (g.CanBeImmediate(base, mode)) { | 341 } else if (g.CanBeImmediate(base, mode)) { |
| 336 Emit(opcode | AddressingModeField::encode(kMode_MRI), g.NoOutput(), | 342 Emit(opcode | AddressingModeField::encode(kMode_MRI), g.NoOutput(), |
| 337 g.UseRegister(offset), g.UseImmediate(base), g.UseRegister(value)); | 343 g.UseRegister(offset), g.UseImmediate(base), g.UseRegister(value)); |
| (...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 382 opcode = kCheckedLoadFloat64; | 388 opcode = kCheckedLoadFloat64; |
| 383 break; | 389 break; |
| 384 case MachineRepresentation::kBit: // Fall through. | 390 case MachineRepresentation::kBit: // Fall through. |
| 385 case MachineRepresentation::kTaggedSigned: // Fall through. | 391 case MachineRepresentation::kTaggedSigned: // Fall through. |
| 386 case MachineRepresentation::kTaggedPointer: // Fall through. | 392 case MachineRepresentation::kTaggedPointer: // Fall through. |
| 387 case MachineRepresentation::kTagged: // Fall through. | 393 case MachineRepresentation::kTagged: // Fall through. |
| 388 #if !V8_TARGET_ARCH_PPC64 | 394 #if !V8_TARGET_ARCH_PPC64 |
| 389 case MachineRepresentation::kWord64: // Fall through. | 395 case MachineRepresentation::kWord64: // Fall through. |
| 390 #endif | 396 #endif |
| 391 case MachineRepresentation::kSimd128: // Fall through. | 397 case MachineRepresentation::kSimd128: // Fall through. |
| 398 case MachineRepresentation::kSimd1x4: // Fall through. |
| 399 case MachineRepresentation::kSimd1x8: // Fall through. |
| 400 case MachineRepresentation::kSimd1x16: // Fall through. |
| 392 case MachineRepresentation::kNone: | 401 case MachineRepresentation::kNone: |
| 393 UNREACHABLE(); | 402 UNREACHABLE(); |
| 394 return; | 403 return; |
| 395 } | 404 } |
| 396 AddressingMode addressingMode = kMode_MRR; | 405 AddressingMode addressingMode = kMode_MRR; |
| 397 Emit(opcode | AddressingModeField::encode(addressingMode), | 406 Emit(opcode | AddressingModeField::encode(addressingMode), |
| 398 g.DefineAsRegister(node), g.UseRegister(base), g.UseRegister(offset), | 407 g.DefineAsRegister(node), g.UseRegister(base), g.UseRegister(offset), |
| 399 g.UseOperand(length, kInt16Imm_Unsigned)); | 408 g.UseOperand(length, kInt16Imm_Unsigned)); |
| 400 } | 409 } |
| 401 | 410 |
| (...skipping 28 matching lines...) Expand all Loading... |
| 430 opcode = kCheckedStoreFloat64; | 439 opcode = kCheckedStoreFloat64; |
| 431 break; | 440 break; |
| 432 case MachineRepresentation::kBit: // Fall through. | 441 case MachineRepresentation::kBit: // Fall through. |
| 433 case MachineRepresentation::kTaggedSigned: // Fall through. | 442 case MachineRepresentation::kTaggedSigned: // Fall through. |
| 434 case MachineRepresentation::kTaggedPointer: // Fall through. | 443 case MachineRepresentation::kTaggedPointer: // Fall through. |
| 435 case MachineRepresentation::kTagged: // Fall through. | 444 case MachineRepresentation::kTagged: // Fall through. |
| 436 #if !V8_TARGET_ARCH_PPC64 | 445 #if !V8_TARGET_ARCH_PPC64 |
| 437 case MachineRepresentation::kWord64: // Fall through. | 446 case MachineRepresentation::kWord64: // Fall through. |
| 438 #endif | 447 #endif |
| 439 case MachineRepresentation::kSimd128: // Fall through. | 448 case MachineRepresentation::kSimd128: // Fall through. |
| 449 case MachineRepresentation::kSimd1x4: // Fall through. |
| 450 case MachineRepresentation::kSimd1x8: // Fall through. |
| 451 case MachineRepresentation::kSimd1x16: // Fall through. |
| 440 case MachineRepresentation::kNone: | 452 case MachineRepresentation::kNone: |
| 441 UNREACHABLE(); | 453 UNREACHABLE(); |
| 442 return; | 454 return; |
| 443 } | 455 } |
| 444 AddressingMode addressingMode = kMode_MRR; | 456 AddressingMode addressingMode = kMode_MRR; |
| 445 Emit(opcode | AddressingModeField::encode(addressingMode), g.NoOutput(), | 457 Emit(opcode | AddressingModeField::encode(addressingMode), g.NoOutput(), |
| 446 g.UseRegister(base), g.UseRegister(offset), | 458 g.UseRegister(base), g.UseRegister(offset), |
| 447 g.UseOperand(length, kInt16Imm_Unsigned), g.UseRegister(value)); | 459 g.UseOperand(length, kInt16Imm_Unsigned), g.UseRegister(value)); |
| 448 } | 460 } |
| 449 | 461 |
| (...skipping 1669 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2119 // static | 2131 // static |
| 2120 MachineOperatorBuilder::AlignmentRequirements | 2132 MachineOperatorBuilder::AlignmentRequirements |
| 2121 InstructionSelector::AlignmentRequirements() { | 2133 InstructionSelector::AlignmentRequirements() { |
| 2122 return MachineOperatorBuilder::AlignmentRequirements:: | 2134 return MachineOperatorBuilder::AlignmentRequirements:: |
| 2123 FullUnalignedAccessSupport(); | 2135 FullUnalignedAccessSupport(); |
| 2124 } | 2136 } |
| 2125 | 2137 |
| 2126 } // namespace compiler | 2138 } // namespace compiler |
| 2127 } // namespace internal | 2139 } // namespace internal |
| 2128 } // namespace v8 | 2140 } // namespace v8 |
| OLD | NEW |