OLD | NEW |
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 Loading... |
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 Loading... |
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 |
OLD | NEW |