OLD | NEW |
1 // Copyright 2015 the V8 project authors. All rights reserved. | 1 // Copyright 2015 the V8 project authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "src/interpreter/bytecodes.h" | 5 #include "src/interpreter/bytecodes.h" |
6 | 6 |
7 #include "src/frames.h" | 7 #include "src/frames.h" |
8 #include "src/interpreter/bytecode-traits.h" | 8 #include "src/interpreter/bytecode-traits.h" |
9 | 9 |
10 namespace v8 { | 10 namespace v8 { |
(...skipping 177 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
188 return OperandSize::kNone; | 188 return OperandSize::kNone; |
189 } | 189 } |
190 | 190 |
191 | 191 |
192 // static | 192 // static |
193 bool Bytecodes::IsConditionalJumpImmediate(Bytecode bytecode) { | 193 bool Bytecodes::IsConditionalJumpImmediate(Bytecode bytecode) { |
194 return bytecode == Bytecode::kJumpIfTrue || | 194 return bytecode == Bytecode::kJumpIfTrue || |
195 bytecode == Bytecode::kJumpIfFalse || | 195 bytecode == Bytecode::kJumpIfFalse || |
196 bytecode == Bytecode::kJumpIfToBooleanTrue || | 196 bytecode == Bytecode::kJumpIfToBooleanTrue || |
197 bytecode == Bytecode::kJumpIfToBooleanFalse || | 197 bytecode == Bytecode::kJumpIfToBooleanFalse || |
| 198 bytecode == Bytecode::kJumpIfNotHole || |
198 bytecode == Bytecode::kJumpIfNull || | 199 bytecode == Bytecode::kJumpIfNull || |
199 bytecode == Bytecode::kJumpIfUndefined || | 200 bytecode == Bytecode::kJumpIfUndefined; |
200 bytecode == Bytecode::kJumpIfHole || | |
201 bytecode == Bytecode::kJumpIfNotHole; | |
202 } | 201 } |
203 | 202 |
204 | 203 |
205 // static | 204 // static |
206 bool Bytecodes::IsConditionalJumpConstant(Bytecode bytecode) { | 205 bool Bytecodes::IsConditionalJumpConstant(Bytecode bytecode) { |
207 return bytecode == Bytecode::kJumpIfTrueConstant || | 206 return bytecode == Bytecode::kJumpIfTrueConstant || |
208 bytecode == Bytecode::kJumpIfFalseConstant || | 207 bytecode == Bytecode::kJumpIfFalseConstant || |
209 bytecode == Bytecode::kJumpIfToBooleanTrueConstant || | 208 bytecode == Bytecode::kJumpIfToBooleanTrueConstant || |
210 bytecode == Bytecode::kJumpIfToBooleanFalseConstant || | 209 bytecode == Bytecode::kJumpIfToBooleanFalseConstant || |
| 210 bytecode == Bytecode::kJumpIfNotHoleConstant || |
211 bytecode == Bytecode::kJumpIfNullConstant || | 211 bytecode == Bytecode::kJumpIfNullConstant || |
212 bytecode == Bytecode::kJumpIfUndefinedConstant; | 212 bytecode == Bytecode::kJumpIfUndefinedConstant; |
213 } | 213 } |
214 | 214 |
215 | 215 |
216 // static | 216 // static |
217 bool Bytecodes::IsConditionalJumpConstantWide(Bytecode bytecode) { | 217 bool Bytecodes::IsConditionalJumpConstantWide(Bytecode bytecode) { |
218 return bytecode == Bytecode::kJumpIfTrueConstantWide || | 218 return bytecode == Bytecode::kJumpIfTrueConstantWide || |
219 bytecode == Bytecode::kJumpIfFalseConstantWide || | 219 bytecode == Bytecode::kJumpIfFalseConstantWide || |
220 bytecode == Bytecode::kJumpIfToBooleanTrueConstantWide || | 220 bytecode == Bytecode::kJumpIfToBooleanTrueConstantWide || |
221 bytecode == Bytecode::kJumpIfToBooleanFalseConstantWide || | 221 bytecode == Bytecode::kJumpIfToBooleanFalseConstantWide || |
| 222 bytecode == Bytecode::kJumpIfNotHoleConstantWide || |
222 bytecode == Bytecode::kJumpIfNullConstantWide || | 223 bytecode == Bytecode::kJumpIfNullConstantWide || |
223 bytecode == Bytecode::kJumpIfUndefinedConstantWide; | 224 bytecode == Bytecode::kJumpIfUndefinedConstantWide; |
224 } | 225 } |
225 | 226 |
226 | 227 |
227 // static | 228 // static |
228 bool Bytecodes::IsConditionalJump(Bytecode bytecode) { | 229 bool Bytecodes::IsConditionalJump(Bytecode bytecode) { |
229 return IsConditionalJumpImmediate(bytecode) || | 230 return IsConditionalJumpImmediate(bytecode) || |
230 IsConditionalJumpConstant(bytecode) || | 231 IsConditionalJumpConstant(bytecode) || |
231 IsConditionalJumpConstantWide(bytecode); | 232 IsConditionalJumpConstantWide(bytecode); |
(...skipping 366 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
598 } else { | 599 } else { |
599 std::ostringstream s; | 600 std::ostringstream s; |
600 s << "r" << index(); | 601 s << "r" << index(); |
601 return s.str(); | 602 return s.str(); |
602 } | 603 } |
603 } | 604 } |
604 | 605 |
605 } // namespace interpreter | 606 } // namespace interpreter |
606 } // namespace internal | 607 } // namespace internal |
607 } // namespace v8 | 608 } // namespace v8 |
OLD | NEW |