OLD | NEW |
1 //===- subzero/src/IceTargetLoweringX86BaseImpl.h - x86 lowering -*- C++ -*-==// | 1 //===- subzero/src/IceTargetLoweringX86BaseImpl.h - x86 lowering -*- C++ -*-==// |
2 // | 2 // |
3 // The Subzero Code Generator | 3 // The Subzero Code Generator |
4 // | 4 // |
5 // This file is distributed under the University of Illinois Open Source | 5 // This file is distributed under the University of Illinois Open Source |
6 // License. See LICENSE.TXT for details. | 6 // License. See LICENSE.TXT for details. |
7 // | 7 // |
8 //===----------------------------------------------------------------------===// | 8 //===----------------------------------------------------------------------===// |
9 /// | 9 /// |
10 /// \file | 10 /// \file |
(...skipping 2551 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2562 case IceType_i1: | 2562 case IceType_i1: |
2563 case IceType_i8: | 2563 case IceType_i8: |
2564 case IceType_i16: | 2564 case IceType_i16: |
2565 llvm::report_fatal_error("Invalid Call dest type"); | 2565 llvm::report_fatal_error("Invalid Call dest type"); |
2566 break; | 2566 break; |
2567 case IceType_i32: | 2567 case IceType_i32: |
2568 ReturnReg = makeReg(DestTy, Traits::RegisterSet::Reg_eax); | 2568 ReturnReg = makeReg(DestTy, Traits::RegisterSet::Reg_eax); |
2569 break; | 2569 break; |
2570 case IceType_i64: | 2570 case IceType_i64: |
2571 if (Traits::Is64Bit) { | 2571 if (Traits::Is64Bit) { |
2572 ReturnReg = makeReg( | 2572 ReturnReg = makeReg(IceType_i64, Traits::getRaxOrDie()); |
2573 IceType_i64, | |
2574 Traits::getGprForType(IceType_i64, Traits::RegisterSet::Reg_eax)); | |
2575 } else { | 2573 } else { |
2576 ReturnReg = makeReg(IceType_i32, Traits::RegisterSet::Reg_eax); | 2574 ReturnReg = makeReg(IceType_i32, Traits::RegisterSet::Reg_eax); |
2577 ReturnRegHi = makeReg(IceType_i32, Traits::RegisterSet::Reg_edx); | 2575 ReturnRegHi = makeReg(IceType_i32, Traits::RegisterSet::Reg_edx); |
2578 } | 2576 } |
2579 break; | 2577 break; |
2580 case IceType_f32: | 2578 case IceType_f32: |
2581 case IceType_f64: | 2579 case IceType_f64: |
2582 if (!Traits::X86_PASS_SCALAR_FP_IN_XMM) { | 2580 if (!Traits::X86_PASS_SCALAR_FP_IN_XMM) { |
2583 // Leave ReturnReg==ReturnRegHi==nullptr, and capture the result with | 2581 // Leave ReturnReg==ReturnRegHi==nullptr, and capture the result with |
2584 // the fstp instruction. | 2582 // the fstp instruction. |
(...skipping 4872 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
7457 emitGlobal(*Var, SectionSuffix); | 7455 emitGlobal(*Var, SectionSuffix); |
7458 } | 7456 } |
7459 } | 7457 } |
7460 } break; | 7458 } break; |
7461 } | 7459 } |
7462 } | 7460 } |
7463 } // end of namespace X86NAMESPACE | 7461 } // end of namespace X86NAMESPACE |
7464 } // end of namespace Ice | 7462 } // end of namespace Ice |
7465 | 7463 |
7466 #endif // SUBZERO_SRC_ICETARGETLOWERINGX86BASEIMPL_H | 7464 #endif // SUBZERO_SRC_ICETARGETLOWERINGX86BASEIMPL_H |
OLD | NEW |