OLD | NEW |
1 // Copyright 2015 the V8 project authors. All rights reserved. | 1 // Copyright 2015 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/s390/frames-s390.h" | 9 #include "src/s390/frames-s390.h" |
10 | 10 |
(...skipping 1856 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1867 } else if (cont->IsTrap()) { | 1867 } else if (cont->IsTrap()) { |
1868 inputs[input_count++] = g.UseImmediate(cont->trap_id()); | 1868 inputs[input_count++] = g.UseImmediate(cont->trap_id()); |
1869 } else { | 1869 } else { |
1870 DCHECK(cont->IsDeoptimize()); | 1870 DCHECK(cont->IsDeoptimize()); |
1871 // nothing to do | 1871 // nothing to do |
1872 } | 1872 } |
1873 | 1873 |
1874 DCHECK(input_count <= 8 && output_count <= 1); | 1874 DCHECK(input_count <= 8 && output_count <= 1); |
1875 if (cont->IsDeoptimize()) { | 1875 if (cont->IsDeoptimize()) { |
1876 selector->EmitDeoptimize(opcode, 0, nullptr, input_count, inputs, | 1876 selector->EmitDeoptimize(opcode, 0, nullptr, input_count, inputs, |
1877 cont->reason(), cont->frame_state()); | 1877 cont->kind(), cont->reason(), cont->frame_state()); |
1878 } else { | 1878 } else { |
1879 selector->Emit(opcode, output_count, outputs, input_count, inputs); | 1879 selector->Emit(opcode, output_count, outputs, input_count, inputs); |
1880 } | 1880 } |
1881 } | 1881 } |
1882 | 1882 |
1883 void VisitWord32Compare(InstructionSelector* selector, Node* node, | 1883 void VisitWord32Compare(InstructionSelector* selector, Node* node, |
1884 FlagsContinuation* cont) { | 1884 FlagsContinuation* cont) { |
1885 OperandModes mode = | 1885 OperandModes mode = |
1886 (CompareLogical(cont) ? OperandMode::kUint32Imm : OperandMode::kInt32Imm); | 1886 (CompareLogical(cont) ? OperandMode::kUint32Imm : OperandMode::kInt32Imm); |
1887 VisitWordCompare(selector, node, kS390_Cmp32, cont, mode); | 1887 VisitWordCompare(selector, node, kS390_Cmp32, cont, mode); |
(...skipping 84 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1972 inputs[input_count++] = g.UseImmediate(cont->trap_id()); | 1972 inputs[input_count++] = g.UseImmediate(cont->trap_id()); |
1973 } else { | 1973 } else { |
1974 DCHECK(cont->IsDeoptimize()); | 1974 DCHECK(cont->IsDeoptimize()); |
1975 // nothing to do | 1975 // nothing to do |
1976 } | 1976 } |
1977 | 1977 |
1978 DCHECK(input_count <= 8 && output_count <= 2); | 1978 DCHECK(input_count <= 8 && output_count <= 2); |
1979 opcode = cont->Encode(opcode); | 1979 opcode = cont->Encode(opcode); |
1980 if (cont->IsDeoptimize()) { | 1980 if (cont->IsDeoptimize()) { |
1981 selector->EmitDeoptimize(opcode, output_count, outputs, input_count, inputs, | 1981 selector->EmitDeoptimize(opcode, output_count, outputs, input_count, inputs, |
1982 cont->reason(), cont->frame_state()); | 1982 cont->kind(), cont->reason(), cont->frame_state()); |
1983 } else { | 1983 } else { |
1984 selector->Emit(opcode, output_count, outputs, input_count, inputs); | 1984 selector->Emit(opcode, output_count, outputs, input_count, inputs); |
1985 } | 1985 } |
1986 } | 1986 } |
1987 | 1987 |
1988 // Shared routine for word comparisons against zero. | 1988 // Shared routine for word comparisons against zero. |
1989 void VisitWordCompareZero(InstructionSelector* selector, Node* user, | 1989 void VisitWordCompareZero(InstructionSelector* selector, Node* user, |
1990 Node* value, InstructionCode opcode, | 1990 Node* value, InstructionCode opcode, |
1991 FlagsContinuation* cont) { | 1991 FlagsContinuation* cont) { |
1992 // Try to combine with comparisons against 0 by simply inverting the branch. | 1992 // Try to combine with comparisons against 0 by simply inverting the branch. |
(...skipping 535 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2528 // static | 2528 // static |
2529 MachineOperatorBuilder::AlignmentRequirements | 2529 MachineOperatorBuilder::AlignmentRequirements |
2530 InstructionSelector::AlignmentRequirements() { | 2530 InstructionSelector::AlignmentRequirements() { |
2531 return MachineOperatorBuilder::AlignmentRequirements:: | 2531 return MachineOperatorBuilder::AlignmentRequirements:: |
2532 FullUnalignedAccessSupport(); | 2532 FullUnalignedAccessSupport(); |
2533 } | 2533 } |
2534 | 2534 |
2535 } // namespace compiler | 2535 } // namespace compiler |
2536 } // namespace internal | 2536 } // namespace internal |
2537 } // namespace v8 | 2537 } // namespace v8 |
OLD | NEW |