Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(959)

Side by Side Diff: src/IceTargetLoweringX86BaseImpl.h

Issue 1657833002: Subzero: Improve x86-32's implementation of getGprForType(). (Closed) Base URL: https://chromium.googlesource.com/native_client/pnacl-subzero.git@master
Patch Set: Created 4 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « src/IceTargetLoweringX8664Traits.h ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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
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
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
OLDNEW
« no previous file with comments | « src/IceTargetLoweringX8664Traits.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698