Chromium Code Reviews| Index: src/fast-codegen.h |
| diff --git a/src/fast-codegen.h b/src/fast-codegen.h |
| index 5bc03374e09224d2264bbd68b2ae97429068431a..a784381a90522de68182bc188c0f7d148546c847 100644 |
| --- a/src/fast-codegen.h |
| +++ b/src/fast-codegen.h |
| @@ -97,6 +97,12 @@ class FastCodeGenerator: public AstVisitor { |
| return (reg.is(accumulator0())) ? accumulator1() : accumulator0(); |
| } |
| + // Flags are true if the respective register is statically known to hold a |
| + // smi. We do not track every register, only the accumulator registers. |
| + bool is_smi(Register reg) { return (smi_bits_ & reg.bit()) != 0; } |
|
fschneider
2010/02/10 15:14:33
What happens if reg == no_reg? Maybe we should
AS
Kevin Millikin (Chromium)
2010/02/11 08:30:09
Done.
|
| + void set_as_smi(Register reg) { smi_bits_ = smi_bits_ | reg.bit(); } |
| + void clear_as_smi(Register reg) { smi_bits_ = smi_bits_ & ~reg.bit(); } |
| + |
| // AST node visit functions. |
| #define DECLARE_VISIT(type) virtual void Visit##type(type* node); |
| AST_NODE_LIST(DECLARE_VISIT) |
| @@ -129,6 +135,7 @@ class FastCodeGenerator: public AstVisitor { |
| CompilationInfo* info_; |
| Label bailout_; |
| Register destination_; |
| + uint32_t smi_bits_; |
|
fschneider
2010/02/10 15:14:33
smi_bits_ should be initialized to 0?
Kevin Millikin (Chromium)
2010/02/11 08:30:09
Done.
|
| DISALLOW_COPY_AND_ASSIGN(FastCodeGenerator); |
| }; |