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

Side by Side Diff: src/IceTargetLoweringX86BaseImpl.h

Issue 1678523002: Subzero: Fix a mul lowering error. (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/IceTargetLoweringARM32.h ('k') | tests_lit/llvm2ice_tests/multidef_kill.ll » ('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/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 1936 matching lines...) Expand 10 before | Expand all | Expand 10 after
1947 // a.hi = t4.hi 1947 // a.hi = t4.hi
1948 // The mul instruction cannot take an immediate operand. 1948 // The mul instruction cannot take an immediate operand.
1949 Src1Lo = legalize(Src1Lo, Legal_Reg | Legal_Mem); 1949 Src1Lo = legalize(Src1Lo, Legal_Reg | Legal_Mem);
1950 _mov(T_1, Src0Hi); 1950 _mov(T_1, Src0Hi);
1951 _imul(T_1, Src1Lo); 1951 _imul(T_1, Src1Lo);
1952 _mov(T_3, Src0Lo, Traits::RegisterSet::Reg_eax); 1952 _mov(T_3, Src0Lo, Traits::RegisterSet::Reg_eax);
1953 _mul(T_4Lo, T_3, Src1Lo); 1953 _mul(T_4Lo, T_3, Src1Lo);
1954 // The mul instruction produces two dest variables, edx:eax. We create a 1954 // The mul instruction produces two dest variables, edx:eax. We create a
1955 // fake definition of edx to account for this. 1955 // fake definition of edx to account for this.
1956 Context.insert<InstFakeDef>(T_4Hi, T_4Lo); 1956 Context.insert<InstFakeDef>(T_4Hi, T_4Lo);
1957 Context.insert<InstFakeUse>(T_4Hi);
1957 _mov(DestLo, T_4Lo); 1958 _mov(DestLo, T_4Lo);
1958 _add(T_4Hi, T_1); 1959 _add(T_4Hi, T_1);
1959 _mov(T_2, Src1Hi); 1960 _mov(T_2, Src1Hi);
1960 _imul(T_2, Src0Lo); 1961 _imul(T_2, Src0Lo);
1961 _add(T_4Hi, T_2); 1962 _add(T_4Hi, T_2);
1962 _mov(DestHi, T_4Hi); 1963 _mov(DestHi, T_4Hi);
1963 } break; 1964 } break;
1964 case InstArithmetic::Shl: 1965 case InstArithmetic::Shl:
1965 case InstArithmetic::Lshr: 1966 case InstArithmetic::Lshr:
1966 case InstArithmetic::Ashr: 1967 case InstArithmetic::Ashr:
(...skipping 5490 matching lines...) Expand 10 before | Expand all | Expand 10 after
7457 emitGlobal(*Var, SectionSuffix); 7458 emitGlobal(*Var, SectionSuffix);
7458 } 7459 }
7459 } 7460 }
7460 } break; 7461 } break;
7461 } 7462 }
7462 } 7463 }
7463 } // end of namespace X86NAMESPACE 7464 } // end of namespace X86NAMESPACE
7464 } // end of namespace Ice 7465 } // end of namespace Ice
7465 7466
7466 #endif // SUBZERO_SRC_ICETARGETLOWERINGX86BASEIMPL_H 7467 #endif // SUBZERO_SRC_ICETARGETLOWERINGX86BASEIMPL_H
OLDNEW
« no previous file with comments | « src/IceTargetLoweringARM32.h ('k') | tests_lit/llvm2ice_tests/multidef_kill.ll » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698