| Index: runtime/vm/intermediate_language.h
|
| ===================================================================
|
| --- runtime/vm/intermediate_language.h (revision 39651)
|
| +++ runtime/vm/intermediate_language.h (working copy)
|
| @@ -1909,12 +1909,15 @@
|
|
|
| class ParameterInstr : public Definition {
|
| public:
|
| - ParameterInstr(intptr_t index, BlockEntryInstr* block)
|
| - : index_(index), block_(block) { }
|
| + ParameterInstr(intptr_t index,
|
| + BlockEntryInstr* block,
|
| + Register base_reg = FPREG)
|
| + : index_(index), base_reg_(base_reg), block_(block) { }
|
|
|
| DECLARE_INSTRUCTION(Parameter)
|
|
|
| intptr_t index() const { return index_; }
|
| + Register base_reg() const { return base_reg_; }
|
|
|
| // Get the block entry for that instruction.
|
| virtual BlockEntryInstr* GetBlock() const { return block_; }
|
| @@ -1947,6 +1950,7 @@
|
| virtual void RawSetInputAt(intptr_t i, Value* value) { UNREACHABLE(); }
|
|
|
| const intptr_t index_;
|
| + const Register base_reg_;
|
| BlockEntryInstr* block_;
|
|
|
| DISALLOW_COPY_AND_ASSIGN(ParameterInstr);
|
| @@ -1987,8 +1991,8 @@
|
|
|
| class ReturnInstr : public TemplateInstruction<1> {
|
| public:
|
| - ReturnInstr(intptr_t token_pos, Value* value)
|
| - : token_pos_(token_pos) {
|
| + ReturnInstr(intptr_t token_pos, Value* value, bool is_intrinsic = false)
|
| + : token_pos_(token_pos), is_intrinsic_(is_intrinsic) {
|
| SetInputAt(0, value);
|
| }
|
|
|
| @@ -2013,6 +2017,7 @@
|
|
|
| private:
|
| const intptr_t token_pos_;
|
| + bool is_intrinsic_;
|
|
|
| DISALLOW_COPY_AND_ASSIGN(ReturnInstr);
|
| };
|
| @@ -7675,7 +7680,6 @@
|
| public:
|
| CheckSmiInstr(Value* value, intptr_t original_deopt_id, intptr_t token_pos)
|
| : token_pos_(token_pos) {
|
| - ASSERT(original_deopt_id != Isolate::kNoDeoptId);
|
| SetInputAt(0, value);
|
| deopt_id_ = original_deopt_id;
|
| }
|
|
|