Use hydrogen accessor instead of copying members.

BUG=
TEST=

Review URL: http://codereview.chromium.org/6119001

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6206 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
parent a50e69bd
......@@ -1285,12 +1285,7 @@ LInstruction* LChunkBuilder::DoCompareMapAndBranch(
HCompareMapAndBranch* instr) {
ASSERT(instr->value()->representation().IsTagged());
LOperand* value = UseRegisterAtStart(instr->value());
HBasicBlock* first = instr->FirstSuccessor();
HBasicBlock* second = instr->SecondSuccessor();
return new LCmpMapAndBranch(value,
instr->map(),
first->block_id(),
second->block_id());
return new LCmpMapAndBranch(value);
}
......
......@@ -1145,27 +1145,20 @@ class LBranch: public LUnaryOperation {
class LCmpMapAndBranch: public LUnaryOperation {
public:
LCmpMapAndBranch(LOperand* value,
Handle<Map> map,
int true_block_id,
int false_block_id)
: LUnaryOperation(value),
map_(map),
true_block_id_(true_block_id),
false_block_id_(false_block_id) { }
explicit LCmpMapAndBranch(LOperand* value) : LUnaryOperation(value) { }
DECLARE_CONCRETE_INSTRUCTION(CmpMapAndBranch, "cmp-map-and-branch")
DECLARE_HYDROGEN_ACCESSOR(CompareMapAndBranch)
virtual bool IsControl() const { return true; }
Handle<Map> map() const { return map_; }
int true_block_id() const { return true_block_id_; }
int false_block_id() const { return false_block_id_; }
private:
Handle<Map> map_;
int true_block_id_;
int false_block_id_;
Handle<Map> map() const { return hydrogen()->map(); }
int true_block_id() const {
return hydrogen()->true_destination()->block_id();
}
int false_block_id() const {
return hydrogen()->false_destination()->block_id();
}
};
......
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