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

Unified Diff: src/IceAssemblerX8664.h

Issue 1224173006: Adds the x86-64 assembler. (Closed) Base URL: https://chromium.googlesource.com/native_client/pnacl-subzero.git@master
Patch Set: Addresses comments; make format Created 5 years, 5 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « Makefile.standalone ('k') | src/IceAssemblerX8664.cpp » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: src/IceAssemblerX8664.h
diff --git a/src/IceAssemblerX8664.h b/src/IceAssemblerX8664.h
index f2ffd7f4ee48ede97d9421f2dc5e5894788022e7..566681016e10d1d687eb134e709b9baeb70446dc 100644
--- a/src/IceAssemblerX8664.h
+++ b/src/IceAssemblerX8664.h
@@ -1,4 +1,12 @@
-//===- subzero/src/IceAssemblerX8664.h - Assembler for x86-64 -*- C++ -*---===//
+//===- subzero/src/IceAssemblerX8664.h - Assembler for x86-64 ---*- C++ -*-===//
+//
+// Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+//
+// Modified by the Subzero authors.
+//
+//===----------------------------------------------------------------------===//
//
// The Subzero Code Generator
//
@@ -16,33 +24,32 @@
#define SUBZERO_SRC_ICEASSEMBLERX8664_H
#include "IceAssembler.h"
+#include "IceAssemblerX86Base.h"
#include "IceDefs.h"
+#include "IceOperand.h"
+#include "IceTargetLoweringX8664Traits.h"
+#include "IceTypes.h"
+#include "IceUtils.h"
namespace Ice {
+
+class TargetX8664;
+
namespace X8664 {
-class AssemblerX8664 final : public Assembler {
+using Immediate = ::Ice::X86Internal::Immediate;
+using Label = ::Ice::X86Internal::Label;
+
+class AssemblerX8664 : public X86Internal::AssemblerX86Base<TargetX8664> {
AssemblerX8664(const AssemblerX8664 &) = delete;
AssemblerX8664 &operator=(const AssemblerX8664 &) = delete;
public:
explicit AssemblerX8664(bool use_far_branches = false)
- : Assembler(Asm_X8664) {
- assert(!use_far_branches);
- (void)use_far_branches;
- llvm::report_fatal_error("Not yet implemented");
- }
-
+ : X86Internal::AssemblerX86Base<TargetX8664>(Asm_X8664,
+ use_far_branches) {}
~AssemblerX8664() override = default;
- void alignFunction() override;
- void padWithNop(intptr_t Padding) override;
- SizeT getBundleAlignLog2Bytes() const override;
- const char *getNonExecPadDirective() const override;
- llvm::ArrayRef<uint8_t> getNonExecBundlePadding() const override;
- void bindCfgNodeLabel(SizeT NodeNumber) override;
- bool fixupIsPCRel(FixupKind Kind) const override;
-
static bool classof(const Assembler *Asm) {
return Asm->getKind() == Asm_X8664;
}
« no previous file with comments | « Makefile.standalone ('k') | src/IceAssemblerX8664.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698