| 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 55 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 66 return Asm->getKind() == Traits::AsmKind; | 66 return Asm->getKind() == Traits::AsmKind; |
| 67 } | 67 } |
| 68 | 68 |
| 69 class Immediate { | 69 class Immediate { |
| 70 Immediate(const Immediate &) = delete; | 70 Immediate(const Immediate &) = delete; |
| 71 Immediate &operator=(const Immediate &) = delete; | 71 Immediate &operator=(const Immediate &) = delete; |
| 72 | 72 |
| 73 public: | 73 public: |
| 74 explicit Immediate(int32_t value) : value_(value) {} | 74 explicit Immediate(int32_t value) : value_(value) {} |
| 75 | 75 |
| 76 Immediate(RelocOffsetT offset, AssemblerFixup *fixup) | 76 explicit Immediate(AssemblerFixup *fixup) : fixup_(fixup) {} |
| 77 : value_(offset), fixup_(fixup) { | |
| 78 // Use the Offset in the "value" for now. If we decide to process fixups, | |
| 79 // we'll need to patch that offset with the true value. | |
| 80 } | |
| 81 | 77 |
| 82 int32_t value() const { return value_; } | 78 int32_t value() const { return value_; } |
| 83 AssemblerFixup *fixup() const { return fixup_; } | 79 AssemblerFixup *fixup() const { return fixup_; } |
| 84 | 80 |
| 85 bool is_int8() const { | 81 bool is_int8() const { |
| 86 // We currently only allow 32-bit fixups, and they usually have value = 0, | 82 // We currently only allow 32-bit fixups, and they usually have value = 0, |
| 87 // so if fixup_ != nullptr, it shouldn't be classified as int8/16. | 83 // so if fixup_ != nullptr, it shouldn't be classified as int8/16. |
| 88 return fixup_ == nullptr && Utils::IsInt(8, value_); | 84 return fixup_ == nullptr && Utils::IsInt(8, value_); |
| 89 } | 85 } |
| 90 bool is_uint8() const { | 86 bool is_uint8() const { |
| 91 return fixup_ == nullptr && Utils::IsUint(8, value_); | 87 return fixup_ == nullptr && Utils::IsUint(8, value_); |
| 92 } | 88 } |
| 93 bool is_uint16() const { | 89 bool is_uint16() const { |
| 94 return fixup_ == nullptr && Utils::IsUint(16, value_); | 90 return fixup_ == nullptr && Utils::IsUint(16, value_); |
| 95 } | 91 } |
| 96 | 92 |
| 97 private: | 93 private: |
| 98 const int32_t value_; | 94 const int32_t value_ = 0; |
| 99 AssemblerFixup *fixup_ = nullptr; | 95 AssemblerFixup *fixup_ = nullptr; |
| 100 }; | 96 }; |
| 101 | 97 |
| 102 /// X86 allows near and far jumps. | 98 /// X86 allows near and far jumps. |
| 103 class Label final : public Ice::Label { | 99 class Label final : public Ice::Label { |
| 104 Label(const Label &) = delete; | 100 Label(const Label &) = delete; |
| 105 Label &operator=(const Label &) = delete; | 101 Label &operator=(const Label &) = delete; |
| 106 | 102 |
| 107 public: | 103 public: |
| 108 Label() = default; | 104 Label() = default; |
| (...skipping 808 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 917 emitUint8(0x66); | 913 emitUint8(0x66); |
| 918 } | 914 } |
| 919 | 915 |
| 920 } // end of namespace X86NAMESPACE | 916 } // end of namespace X86NAMESPACE |
| 921 | 917 |
| 922 } // end of namespace Ice | 918 } // end of namespace Ice |
| 923 | 919 |
| 924 #include "IceAssemblerX86BaseImpl.h" | 920 #include "IceAssemblerX86BaseImpl.h" |
| 925 | 921 |
| 926 #endif // SUBZERO_SRC_ICEASSEMBLERX86BASE_H | 922 #endif // SUBZERO_SRC_ICEASSEMBLERX86BASE_H |
| OLD | NEW |