diff options
Diffstat (limited to 'compiler/utils/assembler.h')
-rw-r--r-- | compiler/utils/assembler.h | 24 |
1 files changed, 23 insertions, 1 deletions
diff --git a/compiler/utils/assembler.h b/compiler/utils/assembler.h index cd4fc12e33..c23fd440dc 100644 --- a/compiler/utils/assembler.h +++ b/compiler/utils/assembler.h @@ -24,6 +24,7 @@ #include "arm/constants_arm.h" #include "mips/constants_mips.h" #include "x86/constants_x86.h" +#include "x86_64/constants_x86_64.h" #include "instruction_set.h" #include "managed_register.h" #include "memory_region.h" @@ -47,6 +48,26 @@ namespace mips { namespace x86 { class X86Assembler; } +namespace x86_64 { + class X86_64Assembler; +} + +class ExternalLabel { + public: + ExternalLabel(const char* name, uword address) + : name_(name), address_(address) { + DCHECK(name != nullptr); + } + + const char* name() const { return name_; } + uword address() const { + return address_; + } + + private: + const char* name_; + const uword address_; +}; class Label { public: @@ -95,6 +116,7 @@ class Label { friend class arm::ArmAssembler; friend class mips::MipsAssembler; friend class x86::X86Assembler; + friend class x86_64::X86_64Assembler; DISALLOW_COPY_AND_ASSIGN(Label); }; @@ -335,7 +357,7 @@ class Assembler { // Emit code that will create an activation on the stack virtual void BuildFrame(size_t frame_size, ManagedRegister method_reg, const std::vector<ManagedRegister>& callee_save_regs, - const std::vector<ManagedRegister>& entry_spills) = 0; + const ManagedRegisterEntrySpills& entry_spills) = 0; // Emit code that will remove an activation from the stack virtual void RemoveFrame(size_t frame_size, |