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

Side by Side Diff: src/IceInstX86Base.h

Issue 1273153002: Subzero. Native 64-bit int arithmetic on x86-64. (Closed) Base URL: https://chromium.googlesource.com/native_client/pnacl-subzero.git@master
Patch Set: Addresses comments. Created 5 years, 4 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
OLDNEW
1 //===- subzero/src/IceInstX86Base.h - Generic x86 instructions -*- C++ -*--===// 1 //===- subzero/src/IceInstX86Base.h - Generic x86 instructions -*- 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 1077 matching lines...) Expand 10 before | Expand all | Expand 10 after
1088 InstX86Cbwdq(Cfg *Func, Variable *Dest, Operand *Src) 1088 InstX86Cbwdq(Cfg *Func, Variable *Dest, Operand *Src)
1089 : InstX86BaseUnaryopGPR<Machine, InstX86Base<Machine>::Cbwdq>(Func, Dest, 1089 : InstX86BaseUnaryopGPR<Machine, InstX86Base<Machine>::Cbwdq>(Func, Dest,
1090 Src) {} 1090 Src) {}
1091 }; 1091 };
1092 1092
1093 template <class Machine> 1093 template <class Machine>
1094 class InstX86Movsx 1094 class InstX86Movsx
1095 : public InstX86BaseUnaryopGPR<Machine, InstX86Base<Machine>::Movsx> { 1095 : public InstX86BaseUnaryopGPR<Machine, InstX86Base<Machine>::Movsx> {
1096 public: 1096 public:
1097 static InstX86Movsx *create(Cfg *Func, Variable *Dest, Operand *Src) { 1097 static InstX86Movsx *create(Cfg *Func, Variable *Dest, Operand *Src) {
1098 assert(typeWidthInBytes(Dest->getType()) >
1099 typeWidthInBytes(Src->getType()));
1098 return new (Func->allocate<InstX86Movsx>()) InstX86Movsx(Func, Dest, Src); 1100 return new (Func->allocate<InstX86Movsx>()) InstX86Movsx(Func, Dest, Src);
1099 } 1101 }
1100 1102
1101 void emitIAS(const Cfg *Func) const override; 1103 void emitIAS(const Cfg *Func) const override;
1102 1104
1103 private: 1105 private:
1104 InstX86Movsx(Cfg *Func, Variable *Dest, Operand *Src) 1106 InstX86Movsx(Cfg *Func, Variable *Dest, Operand *Src)
1105 : InstX86BaseUnaryopGPR<Machine, InstX86Base<Machine>::Movsx>(Func, Dest, 1107 : InstX86BaseUnaryopGPR<Machine, InstX86Base<Machine>::Movsx>(Func, Dest,
1106 Src) {} 1108 Src) {}
1107 }; 1109 };
1108 1110
1109 template <class Machine> 1111 template <class Machine>
1110 class InstX86Movzx 1112 class InstX86Movzx
1111 : public InstX86BaseUnaryopGPR<Machine, InstX86Base<Machine>::Movzx> { 1113 : public InstX86BaseUnaryopGPR<Machine, InstX86Base<Machine>::Movzx> {
1112 public: 1114 public:
1113 static InstX86Movzx *create(Cfg *Func, Variable *Dest, Operand *Src) { 1115 static InstX86Movzx *create(Cfg *Func, Variable *Dest, Operand *Src) {
1116 assert(typeWidthInBytes(Dest->getType()) >
1117 typeWidthInBytes(Src->getType()));
1114 return new (Func->allocate<InstX86Movzx>()) InstX86Movzx(Func, Dest, Src); 1118 return new (Func->allocate<InstX86Movzx>()) InstX86Movzx(Func, Dest, Src);
1115 } 1119 }
1116 1120
1117 void emitIAS(const Cfg *Func) const override; 1121 void emitIAS(const Cfg *Func) const override;
1118 1122
1119 private: 1123 private:
1120 InstX86Movzx(Cfg *Func, Variable *Dest, Operand *Src) 1124 InstX86Movzx(Cfg *Func, Variable *Dest, Operand *Src)
1121 : InstX86BaseUnaryopGPR<Machine, InstX86Base<Machine>::Movzx>(Func, Dest, 1125 : InstX86BaseUnaryopGPR<Machine, InstX86Base<Machine>::Movzx>(Func, Dest,
1122 Src) {} 1126 Src) {}
1123 }; 1127 };
(...skipping 2025 matching lines...) Expand 10 before | Expand all | Expand 10 after
3149 &InstX86Base<Machine>::Traits::Assembler::psrl}; \ 3153 &InstX86Base<Machine>::Traits::Assembler::psrl}; \
3150 } \ 3154 } \
3151 } 3155 }
3152 3156
3153 } // end of namespace X86Internal 3157 } // end of namespace X86Internal
3154 } // end of namespace Ice 3158 } // end of namespace Ice
3155 3159
3156 #include "IceInstX86BaseImpl.h" 3160 #include "IceInstX86BaseImpl.h"
3157 3161
3158 #endif // SUBZERO_SRC_ICEINSTX86BASE_H 3162 #endif // SUBZERO_SRC_ICEINSTX86BASE_H
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698