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

Unified Diff: src/IceTargetLoweringX8664.h

Issue 1257643004: Subzero. Buildable, non-functional TargetLoweringX8664. (Closed) Base URL: https://chromium.googlesource.com/native_client/pnacl-subzero.git@master
Patch Set: git pull 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 | « src/IceTargetLoweringX8632.h ('k') | src/IceTargetLoweringX8664.cpp » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: src/IceTargetLoweringX8664.h
diff --git a/src/IceTargetLoweringX8664.h b/src/IceTargetLoweringX8664.h
index bb00a8ab777a2ba8ca0af428678d22d28be8bae6..8c4329d77758d27aa82f8b89b1e10aa44bf5e3a3 100644
--- a/src/IceTargetLoweringX8664.h
+++ b/src/IceTargetLoweringX8664.h
@@ -16,13 +16,18 @@
#ifndef SUBZERO_SRC_ICETARGETLOWERINGX8664_H
#define SUBZERO_SRC_ICETARGETLOWERINGX8664_H
+#include "IceAssemblerX8664.h"
#include "IceCfg.h"
#include "IceGlobalContext.h"
+#include "IceInstX8664.h"
#include "IceTargetLowering.h"
+#include "IceTargetLoweringX8664Traits.h"
+#include "IceTargetLoweringX86Base.h"
namespace Ice {
-class TargetX8664 : public TargetLowering {
+class TargetX8664 final
+ : public ::Ice::X86Internal::TargetX86Base<TargetX8664> {
TargetX8664() = delete;
TargetX8664(const TargetX8664 &) = delete;
TargetX8664 &operator=(const TargetX8664 &) = delete;
@@ -31,10 +36,20 @@ class TargetX8664 : public TargetLowering {
const InstJumpTable *JumpTable) const override;
public:
- static TargetX8664 *create(Cfg *Func);
+ static TargetX8664 *create(Cfg *Func) { return new TargetX8664(Func); }
private:
- explicit TargetX8664(Cfg *Func) : TargetLowering(Func) {}
+ friend class ::Ice::X86Internal::TargetX86Base<TargetX8664>;
+
+ explicit TargetX8664(Cfg *Func)
+ : ::Ice::X86Internal::TargetX86Base<TargetX8664>(Func) {}
+
+ Operand *createNaClReadTPSrcOperand() {
+ Variable *TDB = makeReg(IceType_i32);
+ InstCall *Call = makeHelperCall(H_call_read_tp, TDB, 0);
+ lowerCall(Call);
+ return TDB;
+ }
};
class TargetDataX8664 : public TargetDataLowering {
@@ -59,6 +74,7 @@ private:
ENABLE_MAKE_UNIQUE;
explicit TargetDataX8664(GlobalContext *Ctx) : TargetDataLowering(Ctx) {}
+ template <typename T> static void emitConstantPool(GlobalContext *Ctx);
};
class TargetHeaderX8664 : public TargetHeaderLowering {
« no previous file with comments | « src/IceTargetLoweringX8632.h ('k') | src/IceTargetLoweringX8664.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698