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

Side by Side Diff: src/IceTargetLoweringX8664Traits.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/IceTargetLoweringX8632Traits.h ('k') | src/IceTargetLoweringX86BaseImpl.h » ('j') | 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/IceTargetLoweringX8664Traits.h - x86-64 traits -*- C++ -*-=// 1 //===- subzero/src/IceTargetLoweringX8664Traits.h - x86-64 traits -*- 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 419 matching lines...) Expand 10 before | Expand all | Expand 10 after
430 switch (RegNum) { 430 switch (RegNum) {
431 default: 431 default:
432 llvm::report_fatal_error("Unknown register."); 432 llvm::report_fatal_error("Unknown register.");
433 #define X(val, encode, name, base, scratch, preserved, stackptr, frameptr, \ 433 #define X(val, encode, name, base, scratch, preserved, stackptr, frameptr, \
434 sboxres, isGPR, is64, is32, is16, is8, isXmm, is64To8, is32To8, \ 434 sboxres, isGPR, is64, is32, is16, is8, isXmm, is64To8, is32To8, \
435 is16To8, isTrunc8Rcvr, isAhRcvr, aliases) \ 435 is16To8, isTrunc8Rcvr, isAhRcvr, aliases) \
436 case RegisterSet::val: { \ 436 case RegisterSet::val: { \
437 if (!isGPR) \ 437 if (!isGPR) \
438 return RegisterSet::val; \ 438 return RegisterSet::val; \
439 assert((is64) || (is32) || (is16) || (is8) || \ 439 assert((is64) || (is32) || (is16) || (is8) || \
440 getBaseReg(RegisterSet::val) == RegisterSet::Reg_rsp || \ 440 getBaseReg(RegisterSet::val) == RegisterSet::Reg_rsp); \
441 getBaseReg(RegisterSet::val) == RegisterSet::Reg_rbp); \
442 constexpr int32_t FirstGprWithRegNumSize = \ 441 constexpr int32_t FirstGprWithRegNumSize = \
443 ((is64) || RegisterSet::val == RegisterSet::Reg_rsp || \ 442 ((is64) || RegisterSet::val == RegisterSet::Reg_rsp) \
444 RegisterSet::val == RegisterSet::Reg_rbp) \
445 ? RegisterSet::Reg_rax \ 443 ? RegisterSet::Reg_rax \
446 : (((is32) || RegisterSet::val == RegisterSet::Reg_esp || \ 444 : (((is32) || RegisterSet::val == RegisterSet::Reg_esp) \
447 RegisterSet::val == RegisterSet::Reg_ebp) \
448 ? RegisterSet::Reg_eax \ 445 ? RegisterSet::Reg_eax \
449 : (((is16) || RegisterSet::val == RegisterSet::Reg_sp || \ 446 : (((is16) || RegisterSet::val == RegisterSet::Reg_sp) \
450 RegisterSet::val == RegisterSet::Reg_bp) \
451 ? RegisterSet::Reg_ax \ 447 ? RegisterSet::Reg_ax \
452 : RegisterSet::Reg_al)); \ 448 : RegisterSet::Reg_al)); \
453 const int32_t NewRegNum = \ 449 const int32_t NewRegNum = \
454 RegNum - FirstGprWithRegNumSize + FirstGprForType; \ 450 RegNum - FirstGprWithRegNumSize + FirstGprForType; \
455 assert(getBaseReg(RegNum) == getBaseReg(NewRegNum) && \ 451 assert(getBaseReg(RegNum) == getBaseReg(NewRegNum) && \
456 "Error involving " #val); \ 452 "Error involving " #val); \
457 return NewRegNum; \ 453 return NewRegNum; \
458 } 454 }
459 REGX8664_TABLE 455 REGX8664_TABLE
460 #undef X 456 #undef X
(...skipping 584 matching lines...) Expand 10 before | Expand all | Expand 10 after
1045 const char *FldString; // s, l, or <blank> 1041 const char *FldString; // s, l, or <blank>
1046 } TypeAttributes[]; 1042 } TypeAttributes[];
1047 }; 1043 };
1048 1044
1049 using Traits = ::Ice::X8664::TargetX8664Traits; 1045 using Traits = ::Ice::X8664::TargetX8664Traits;
1050 } // end of namespace X8664 1046 } // end of namespace X8664
1051 1047
1052 } // end of namespace Ice 1048 } // end of namespace Ice
1053 1049
1054 #endif // SUBZERO_SRC_ICETARGETLOWERINGX8664TRAITS_H 1050 #endif // SUBZERO_SRC_ICETARGETLOWERINGX8664TRAITS_H
OLDNEW
« no previous file with comments | « src/IceTargetLoweringX8632Traits.h ('k') | src/IceTargetLoweringX86BaseImpl.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698