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

Side by Side Diff: src/IceAssemblerX86BaseImpl.h

Issue 1631383002: Subzero. X8664. Fixes various small bugs. (Closed) Base URL: https://chromium.googlesource.com/native_client/pnacl-subzero.git@master
Patch Set: Addresses comments. Created 4 years, 11 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/IceAssemblerX86Base.h ('k') | src/IceInstX86BaseImpl.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/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 3159 matching lines...) Expand 10 before | Expand all | Expand 10 after
3170 } 3170 }
3171 3171
3172 template <typename TraitsType> 3172 template <typename TraitsType>
3173 void AssemblerX86Base<TraitsType>::jmp(const ConstantRelocatable *label) { 3173 void AssemblerX86Base<TraitsType>::jmp(const ConstantRelocatable *label) {
3174 AssemblerBuffer::EnsureCapacity ensured(&Buffer); 3174 AssemblerBuffer::EnsureCapacity ensured(&Buffer);
3175 emitUint8(0xE9); 3175 emitUint8(0xE9);
3176 emitFixup(this->createFixup(Traits::FK_PcRel, label)); 3176 emitFixup(this->createFixup(Traits::FK_PcRel, label));
3177 emitInt32(-4); 3177 emitInt32(-4);
3178 } 3178 }
3179 3179
3180 template <typename TraitsType>
3181 void AssemblerX86Base<TraitsType>::jmp(const Immediate &abs_address) {
3182 AssemblerBuffer::EnsureCapacity ensured(&Buffer);
3183 emitUint8(0xE9);
3184 AssemblerFixup *Fixup =
3185 this->createFixup(Traits::FK_PcRel, AssemblerFixup::NullSymbol);
3186 Fixup->set_addend(abs_address.value());
3187 emitFixup(Fixup);
3188 emitInt32(abs_address.value() - 4);
3189 }
3190
3180 template <typename TraitsType> void AssemblerX86Base<TraitsType>::mfence() { 3191 template <typename TraitsType> void AssemblerX86Base<TraitsType>::mfence() {
3181 AssemblerBuffer::EnsureCapacity ensured(&Buffer); 3192 AssemblerBuffer::EnsureCapacity ensured(&Buffer);
3182 emitUint8(0x0F); 3193 emitUint8(0x0F);
3183 emitUint8(0xAE); 3194 emitUint8(0xAE);
3184 emitUint8(0xF0); 3195 emitUint8(0xF0);
3185 } 3196 }
3186 3197
3187 template <typename TraitsType> void AssemblerX86Base<TraitsType>::lock() { 3198 template <typename TraitsType> void AssemblerX86Base<TraitsType>::lock() {
3188 AssemblerBuffer::EnsureCapacity ensured(&Buffer); 3199 AssemblerBuffer::EnsureCapacity ensured(&Buffer);
3189 emitUint8(0xF0); 3200 emitUint8(0xF0);
(...skipping 319 matching lines...) Expand 10 before | Expand all | Expand 10 after
3509 (void)shifter; 3520 (void)shifter;
3510 if (Ty == IceType_i16) 3521 if (Ty == IceType_i16)
3511 emitOperandSizeOverride(); 3522 emitOperandSizeOverride();
3512 emitRexB(Ty, operand.rm()); 3523 emitRexB(Ty, operand.rm());
3513 emitUint8(isByteSizedArithType(Ty) ? 0xD2 : 0xD3); 3524 emitUint8(isByteSizedArithType(Ty) ? 0xD2 : 0xD3);
3514 emitOperand(rm, operand); 3525 emitOperand(rm, operand);
3515 } 3526 }
3516 3527
3517 } // end of namespace X86NAMESPACE 3528 } // end of namespace X86NAMESPACE
3518 } // end of namespace Ice 3529 } // end of namespace Ice
OLDNEW
« no previous file with comments | « src/IceAssemblerX86Base.h ('k') | src/IceInstX86BaseImpl.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698