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

Side by Side Diff: src/IceAssemblerX86Base.h

Issue 1418523002: Add hybrid assembler concept to ARM assembler. (Closed) Base URL: https://chromium.googlesource.com/native_client/pnacl-subzero.git@master
Patch Set: Fix nits. Created 5 years, 2 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/IceAssemblerARM32.cpp ('k') | src/IceClFlags.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/IceAssemblerX86Base.h - base x86 assembler -*- C++ -*---===// 1 //===- subzero/src/IceAssemblerX86Base.h - base x86 assembler -*- C++ -*---===//
2 // 2 //
3 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file 3 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file
4 // for details. All rights reserved. Use of this source code is governed by a 4 // for details. All rights reserved. Use of this source code is governed by a
5 // BSD-style license that can be found in the LICENSE file. 5 // BSD-style license that can be found in the LICENSE file.
6 // 6 //
7 // Modified by the Subzero authors. 7 // Modified by the Subzero authors.
8 // 8 //
9 //===----------------------------------------------------------------------===// 9 //===----------------------------------------------------------------------===//
10 // 10 //
(...skipping 867 matching lines...) Expand 10 before | Expand all | Expand 10 after
878 static constexpr Type RexTypeIrrelevant = IceType_i32; 878 static constexpr Type RexTypeIrrelevant = IceType_i32;
879 static constexpr Type RexTypeForceRexW = IceType_i64; 879 static constexpr Type RexTypeForceRexW = IceType_i64;
880 static constexpr typename Traits::GPRRegister RexRegIrrelevant = 880 static constexpr typename Traits::GPRRegister RexRegIrrelevant =
881 Traits::GPRRegister::Encoded_Reg_eax; 881 Traits::GPRRegister::Encoded_Reg_eax;
882 882
883 inline void emitInt16(int16_t value); 883 inline void emitInt16(int16_t value);
884 inline void emitInt32(int32_t value); 884 inline void emitInt32(int32_t value);
885 inline void emitRegisterOperand(int rm, int reg); 885 inline void emitRegisterOperand(int rm, int reg);
886 template <typename RegType, typename RmType> 886 template <typename RegType, typename RmType>
887 inline void emitXmmRegisterOperand(RegType reg, RmType rm); 887 inline void emitXmmRegisterOperand(RegType reg, RmType rm);
888 inline void emitFixup(AssemblerFixup *fixup);
889 inline void emitOperandSizeOverride(); 888 inline void emitOperandSizeOverride();
890 889
891 void emitOperand(int rm, const typename Traits::Operand &operand); 890 void emitOperand(int rm, const typename Traits::Operand &operand);
892 void emitImmediate(Type ty, const Immediate &imm); 891 void emitImmediate(Type ty, const Immediate &imm);
893 void emitComplexI8(int rm, const typename Traits::Operand &operand, 892 void emitComplexI8(int rm, const typename Traits::Operand &operand,
894 const Immediate &immediate); 893 const Immediate &immediate);
895 void emitComplex(Type Ty, int rm, const typename Traits::Operand &operand, 894 void emitComplex(Type Ty, int rm, const typename Traits::Operand &operand,
896 const Immediate &immediate); 895 const Immediate &immediate);
897 void emitLabel(Label *label, intptr_t instruction_size); 896 void emitLabel(Label *label, intptr_t instruction_size);
898 void emitLabelLink(Label *label); 897 void emitLabelLink(Label *label);
(...skipping 157 matching lines...) Expand 10 before | Expand all | Expand 10 after
1056 } 1055 }
1057 1056
1058 template <class Machine> 1057 template <class Machine>
1059 template <typename RegType, typename RmType> 1058 template <typename RegType, typename RmType>
1060 inline void AssemblerX86Base<Machine>::emitXmmRegisterOperand(RegType reg, 1059 inline void AssemblerX86Base<Machine>::emitXmmRegisterOperand(RegType reg,
1061 RmType rm) { 1060 RmType rm) {
1062 emitRegisterOperand(gprEncoding(reg), gprEncoding(rm)); 1061 emitRegisterOperand(gprEncoding(reg), gprEncoding(rm));
1063 } 1062 }
1064 1063
1065 template <class Machine> 1064 template <class Machine>
1066 inline void AssemblerX86Base<Machine>::emitFixup(AssemblerFixup *fixup) {
1067 Buffer.emitFixup(fixup);
1068 }
1069
1070 template <class Machine>
1071 inline void AssemblerX86Base<Machine>::emitOperandSizeOverride() { 1065 inline void AssemblerX86Base<Machine>::emitOperandSizeOverride() {
1072 emitUint8(0x66); 1066 emitUint8(0x66);
1073 } 1067 }
1074 1068
1075 } // end of namespace X86Internal 1069 } // end of namespace X86Internal
1076 1070
1077 } // end of namespace Ice 1071 } // end of namespace Ice
1078 1072
1079 #include "IceAssemblerX86BaseImpl.h" 1073 #include "IceAssemblerX86BaseImpl.h"
1080 1074
1081 #endif // SUBZERO_SRC_ICEASSEMBLERX86BASE_H 1075 #endif // SUBZERO_SRC_ICEASSEMBLERX86BASE_H
OLDNEW
« no previous file with comments | « src/IceAssemblerARM32.cpp ('k') | src/IceClFlags.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698