Index: src/interpreter/bytecode-array-builder.h |
diff --git a/src/interpreter/bytecode-array-builder.h b/src/interpreter/bytecode-array-builder.h |
index d7830f25f9f4e9060094875968d34aaed81699b0..3cdea52aae08488f00109c26786080664407301e 100644 |
--- a/src/interpreter/bytecode-array-builder.h |
+++ b/src/interpreter/bytecode-array-builder.h |
@@ -11,7 +11,6 @@ |
#include "src/interpreter/bytecodes.h" |
#include "src/interpreter/constant-array-builder.h" |
#include "src/interpreter/handler-table-builder.h" |
-#include "src/interpreter/source-position-table.h" |
#include "src/zone-containers.h" |
namespace v8 { |
@@ -297,8 +296,6 @@ class BytecodeArrayBuilder final : public ZoneObject { |
static Bytecode BytecodeForDelete(LanguageMode language_mode); |
static Bytecode BytecodeForCall(TailCallMode tail_call_mode); |
- static Bytecode GetJumpWithConstantOperand(Bytecode jump_smi8_operand); |
- |
void Output(Bytecode bytecode); |
void OutputScaled(Bytecode bytecode, OperandScale operand_scale, |
uint32_t operand0, uint32_t operand1, uint32_t operand2, |
@@ -312,15 +309,7 @@ class BytecodeArrayBuilder final : public ZoneObject { |
BytecodeArrayBuilder& OutputJump(Bytecode jump_bytecode, |
BytecodeLabel* label); |
- void PatchJump(size_t jump_target, size_t jump_location); |
- void PatchJumpWith8BitOperand(ZoneVector<uint8_t>* bytecodes, |
- size_t jump_location, int delta); |
- void PatchJumpWith16BitOperand(ZoneVector<uint8_t>* bytecodes, |
- size_t jump_location, int delta); |
- void PatchJumpWith32BitOperand(ZoneVector<uint8_t>* bytecodes, |
- size_t jump_location, int delta); |
- void LeaveBasicBlock(); |
bool OperandIsValid(Bytecode bytecode, OperandScale operand_scale, |
int operand_index, uint32_t operand_value) const; |
@@ -337,6 +326,8 @@ class BytecodeArrayBuilder final : public ZoneObject { |
// during bytecode generation. |
BytecodeArrayBuilder& Illegal(); |
+ void LeaveBasicBlock() { return_seen_in_block_ = false; } |
+ |
Isolate* isolate() const { return isolate_; } |
BytecodeArrayWriter* bytecode_array_writer() { |
return &bytecode_array_writer_; |
@@ -351,18 +342,13 @@ class BytecodeArrayBuilder final : public ZoneObject { |
HandlerTableBuilder* handler_table_builder() { |
return &handler_table_builder_; |
} |
- SourcePositionTableBuilder* source_position_table_builder() { |
- return &source_position_table_builder_; |
- } |
Isolate* isolate_; |
Zone* zone_; |
bool bytecode_generated_; |
ConstantArrayBuilder constant_array_builder_; |
HandlerTableBuilder handler_table_builder_; |
- SourcePositionTableBuilder source_position_table_builder_; |
bool return_seen_in_block_; |
- int unbound_jumps_; |
int parameter_count_; |
int local_register_count_; |
int context_register_count_; |
@@ -375,47 +361,6 @@ class BytecodeArrayBuilder final : public ZoneObject { |
DISALLOW_COPY_AND_ASSIGN(BytecodeArrayBuilder); |
}; |
- |
-// A label representing a branch target in a bytecode array. When a |
-// label is bound, it represents a known position in the bytecode |
-// array. For labels that are forward references there can be at most |
-// one reference whilst it is unbound. |
-class BytecodeLabel final { |
- public: |
- BytecodeLabel() : bound_(false), offset_(kInvalidOffset) {} |
- |
- bool is_bound() const { return bound_; } |
- size_t offset() const { return offset_; } |
- |
- private: |
- static const size_t kInvalidOffset = static_cast<size_t>(-1); |
- |
- void bind_to(size_t offset) { |
- DCHECK(!bound_ && offset != kInvalidOffset); |
- offset_ = offset; |
- bound_ = true; |
- } |
- |
- void set_referrer(size_t offset) { |
- DCHECK(!bound_ && offset != kInvalidOffset && offset_ == kInvalidOffset); |
- offset_ = offset; |
- } |
- |
- bool is_forward_target() const { |
- return offset() != kInvalidOffset && !is_bound(); |
- } |
- |
- // There are three states for a label: |
- // bound_ offset_ |
- // UNSET false kInvalidOffset |
- // FORWARD_TARGET false Offset of referring jump |
- // BACKWARD_TARGET true Offset of label in bytecode array when bound |
- bool bound_; |
- size_t offset_; |
- |
- friend class BytecodeArrayBuilder; |
-}; |
- |
} // namespace interpreter |
} // namespace internal |
} // namespace v8 |