Commit 729b5f6c by John Porto

Subzero. Moves code around in preparations for 64-bit lowering.

Specifically, it moves lowerArguments lowerRet addProlog addEpilog from the x86 lowering template to the concrete lowering implementations. BUG= https://code.google.com/p/nativeclient/issues/detail?id=4077 R=stichnot@chromium.org Review URL: https://codereview.chromium.org/1261383002.
parent f6f9825e
......@@ -8,9 +8,8 @@
//===----------------------------------------------------------------------===//
///
/// \file
/// This file used to house all the X8664 instructions. Subzero has been
/// modified to use templates for X86 instructions, so all those definitions are
/// are in IceInstX86Base.h
/// (Note: x86 instructions are templates, and they are defined in
/// src/IceInstX86Base.)
///
/// When interacting with the X8664 target (which should only happen in the
/// X8664 TargetLowering) clients have should use the Ice::X8664::Traits::Insts
......
......@@ -43,6 +43,10 @@ public:
protected:
void lowerCall(const InstCall *Instr) override;
void lowerArguments() override;
void lowerRet(const InstRet *Inst) override;
void addProlog(CfgNode *Node) override;
void addEpilog(CfgNode *Node) override;
private:
friend class ::Ice::X86Internal::TargetX86Base<TargetX8632>;
......
......@@ -40,6 +40,10 @@ public:
protected:
void lowerCall(const InstCall *Instr) override;
void lowerArguments() override;
void lowerRet(const InstRet *Inst) override;
void addProlog(CfgNode *Node) override;
void addEpilog(CfgNode *Node) override;
private:
friend class ::Ice::X86Internal::TargetX86Base<TargetX8664>;
......
......@@ -98,10 +98,7 @@ public:
void emit(const ConstantFloat *C) const final;
void emit(const ConstantDouble *C) const final;
void lowerArguments() override;
void initNodeForLowering(CfgNode *Node) override;
void addProlog(CfgNode *Node) override;
void addEpilog(CfgNode *Node) override;
/// Ensure that a 64-bit Variable has been split into 2 32-bit
/// Variables, creating them if necessary. This is needed for all
/// I64 operations, and it is needed for pushing F64 arguments for
......@@ -136,7 +133,6 @@ protected:
void lowerInsertElement(const InstInsertElement *Inst) override;
void lowerLoad(const InstLoad *Inst) override;
void lowerPhi(const InstPhi *Inst) override;
void lowerRet(const InstRet *Inst) override;
void lowerSelect(const InstSelect *Inst) override;
void lowerStore(const InstStore *Inst) override;
void lowerSwitch(const InstSwitch *Inst) override;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment