5#ifndef V8_INTERPRETER_BYTECODE_JUMP_TABLE_H_
6#define V8_INTERPRETER_BYTECODE_JUMP_TABLE_H_
13namespace interpreter {
15class ConstantArrayBuilder;
31 constant_pool_index_(constant_pool_index),
32 switch_bytecode_offset_(kInvalidOffset),
34 case_value_base_(case_value_base) {
42 bool is_bound(
int case_value)
const {
45 return bound_.Contains(case_value - case_value_base_);
51 return constant_pool_index_ + case_value - case_value_base_;
55 static const size_t kInvalidIndex =
static_cast<size_t>(-1);
56 static const size_t kInvalidOffset =
static_cast<size_t>(-1);
62 bound_.Add(case_value - case_value_base_);
67 DCHECK_EQ(switch_bytecode_offset_, kInvalidOffset);
68 switch_bytecode_offset_ =
offset;
size_t constant_pool_index_
size_t constant_pool_index() const
int case_value_base() const
void mark_bound(int case_value)
BytecodeJumpTable(size_t constant_pool_index, int size, int case_value_base, Zone *zone)
size_t ConstantPoolEntryFor(int case_value)
size_t switch_bytecode_offset_
void set_switch_bytecode_offset(size_t offset)
size_t switch_bytecode_offset() const
#define DCHECK_GE(v1, v2)
#define DCHECK_LT(v1, v2)
#define DCHECK_EQ(v1, v2)
#define V8_EXPORT_PRIVATE