OLD | NEW |
1 //===- subzero/src/IceAssemblerX86BaseImpl.h - base x86 assembler -*- C++ -*-=// | 1 //===- subzero/src/IceAssemblerX86BaseImpl.h - base x86 assembler -*- C++ -*-=// |
2 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file | 2 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file |
3 // for details. All rights reserved. Use of this source code is governed by a | 3 // for details. All rights reserved. Use of this source code is governed by a |
4 // BSD-style license that can be found in the LICENSE file. | 4 // BSD-style license that can be found in the LICENSE file. |
5 // | 5 // |
6 // Modified by the Subzero authors. | 6 // Modified by the Subzero authors. |
7 // | 7 // |
8 //===----------------------------------------------------------------------===// | 8 //===----------------------------------------------------------------------===// |
9 // | 9 // |
10 // The Subzero Code Generator | 10 // The Subzero Code Generator |
(...skipping 159 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
170 | 170 |
171 template <class Machine> | 171 template <class Machine> |
172 template <typename, typename> | 172 template <typename, typename> |
173 void AssemblerX86Base<Machine>::popal() { | 173 void AssemblerX86Base<Machine>::popal() { |
174 AssemblerBuffer::EnsureCapacity ensured(&Buffer); | 174 AssemblerBuffer::EnsureCapacity ensured(&Buffer); |
175 emitUint8(0x61); | 175 emitUint8(0x61); |
176 } | 176 } |
177 | 177 |
178 template <class Machine> | 178 template <class Machine> |
179 void AssemblerX86Base<Machine>::setcc(typename Traits::Cond::BrCond condition, | 179 void AssemblerX86Base<Machine>::setcc(typename Traits::Cond::BrCond condition, |
180 typename Traits::ByteRegister dst) { | 180 typename Traits::GPRRegister dst) { |
181 AssemblerBuffer::EnsureCapacity ensured(&Buffer); | 181 AssemblerBuffer::EnsureCapacity ensured(&Buffer); |
182 emitRexB(IceType_i8, dst); | 182 emitRexB(IceType_i8, dst); |
183 emitUint8(0x0F); | 183 emitUint8(0x0F); |
184 emitUint8(0x90 + condition); | 184 emitUint8(0x90 + condition); |
185 emitUint8(0xC0 + gprEncoding(dst)); | 185 emitUint8(0xC0 + gprEncoding(dst)); |
186 } | 186 } |
187 | 187 |
188 template <class Machine> | 188 template <class Machine> |
189 void AssemblerX86Base<Machine>::setcc(typename Traits::Cond::BrCond condition, | 189 void AssemblerX86Base<Machine>::setcc(typename Traits::Cond::BrCond condition, |
190 const typename Traits::Address &address) { | 190 const typename Traits::Address &address) { |
(...skipping 3245 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3436 (void)shifter; | 3436 (void)shifter; |
3437 if (Ty == IceType_i16) | 3437 if (Ty == IceType_i16) |
3438 emitOperandSizeOverride(); | 3438 emitOperandSizeOverride(); |
3439 emitRexB(Ty, operand.rm()); | 3439 emitRexB(Ty, operand.rm()); |
3440 emitUint8(isByteSizedArithType(Ty) ? 0xD2 : 0xD3); | 3440 emitUint8(isByteSizedArithType(Ty) ? 0xD2 : 0xD3); |
3441 emitOperand(rm, operand); | 3441 emitOperand(rm, operand); |
3442 } | 3442 } |
3443 | 3443 |
3444 } // end of namespace X86Internal | 3444 } // end of namespace X86Internal |
3445 } // end of namespace Ice | 3445 } // end of namespace Ice |
OLD | NEW |