| 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 {
|
|
|