| Index: src/deoptimizer.cc
|
| diff --git a/src/deoptimizer.cc b/src/deoptimizer.cc
|
| index 6fe51bb3aff48ead9cde4b6b4139bf093a5c468c..2b32804f9f7e386a715fd44c05ab9c51daa4b2e3 100644
|
| --- a/src/deoptimizer.cc
|
| +++ b/src/deoptimizer.cc
|
| @@ -2281,7 +2281,7 @@ FrameDescription::FrameDescription(uint32_t frame_size, int parameter_count)
|
| }
|
| }
|
|
|
| -void TranslationBuffer::Add(int32_t value, Zone* zone) {
|
| +void TranslationBuffer::Add(int32_t value) {
|
| // This wouldn't handle kMinInt correctly if it ever encountered it.
|
| DCHECK(value != kMinInt);
|
| // Encode the sign bit in the least significant bit.
|
| @@ -2292,7 +2292,7 @@ void TranslationBuffer::Add(int32_t value, Zone* zone) {
|
| // each byte to indicate whether or not more bytes follow.
|
| do {
|
| uint32_t next = bits >> 7;
|
| - contents_.Add(((bits << 1) & 0xFF) | (next != 0), zone);
|
| + contents_.push_back(((bits << 1) & 0xFF) | (next != 0));
|
| bits = next;
|
| } while (bits != 0);
|
| }
|
| @@ -2316,167 +2316,166 @@ int32_t TranslationIterator::Next() {
|
|
|
|
|
| Handle<ByteArray> TranslationBuffer::CreateByteArray(Factory* factory) {
|
| - int length = contents_.length();
|
| - Handle<ByteArray> result = factory->NewByteArray(length, TENURED);
|
| - MemCopy(result->GetDataStartAddress(), contents_.ToVector().start(), length);
|
| + Handle<ByteArray> result = factory->NewByteArray(CurrentIndex(), TENURED);
|
| + contents_.CopyTo(result->GetDataStartAddress());
|
| return result;
|
| }
|
|
|
|
|
| void Translation::BeginConstructStubFrame(int literal_id, unsigned height) {
|
| - buffer_->Add(CONSTRUCT_STUB_FRAME, zone());
|
| - buffer_->Add(literal_id, zone());
|
| - buffer_->Add(height, zone());
|
| + buffer_->Add(CONSTRUCT_STUB_FRAME);
|
| + buffer_->Add(literal_id);
|
| + buffer_->Add(height);
|
| }
|
|
|
|
|
| void Translation::BeginGetterStubFrame(int literal_id) {
|
| - buffer_->Add(GETTER_STUB_FRAME, zone());
|
| - buffer_->Add(literal_id, zone());
|
| + buffer_->Add(GETTER_STUB_FRAME);
|
| + buffer_->Add(literal_id);
|
| }
|
|
|
|
|
| void Translation::BeginSetterStubFrame(int literal_id) {
|
| - buffer_->Add(SETTER_STUB_FRAME, zone());
|
| - buffer_->Add(literal_id, zone());
|
| + buffer_->Add(SETTER_STUB_FRAME);
|
| + buffer_->Add(literal_id);
|
| }
|
|
|
|
|
| void Translation::BeginArgumentsAdaptorFrame(int literal_id, unsigned height) {
|
| - buffer_->Add(ARGUMENTS_ADAPTOR_FRAME, zone());
|
| - buffer_->Add(literal_id, zone());
|
| - buffer_->Add(height, zone());
|
| + buffer_->Add(ARGUMENTS_ADAPTOR_FRAME);
|
| + buffer_->Add(literal_id);
|
| + buffer_->Add(height);
|
| }
|
|
|
| void Translation::BeginTailCallerFrame(int literal_id) {
|
| - buffer_->Add(TAIL_CALLER_FRAME, zone());
|
| - buffer_->Add(literal_id, zone());
|
| + buffer_->Add(TAIL_CALLER_FRAME);
|
| + buffer_->Add(literal_id);
|
| }
|
|
|
| void Translation::BeginJSFrame(BailoutId node_id,
|
| int literal_id,
|
| unsigned height) {
|
| - buffer_->Add(JS_FRAME, zone());
|
| - buffer_->Add(node_id.ToInt(), zone());
|
| - buffer_->Add(literal_id, zone());
|
| - buffer_->Add(height, zone());
|
| + buffer_->Add(JS_FRAME);
|
| + buffer_->Add(node_id.ToInt());
|
| + buffer_->Add(literal_id);
|
| + buffer_->Add(height);
|
| }
|
|
|
|
|
| void Translation::BeginInterpretedFrame(BailoutId bytecode_offset,
|
| int literal_id, unsigned height) {
|
| - buffer_->Add(INTERPRETED_FRAME, zone());
|
| - buffer_->Add(bytecode_offset.ToInt(), zone());
|
| - buffer_->Add(literal_id, zone());
|
| - buffer_->Add(height, zone());
|
| + buffer_->Add(INTERPRETED_FRAME);
|
| + buffer_->Add(bytecode_offset.ToInt());
|
| + buffer_->Add(literal_id);
|
| + buffer_->Add(height);
|
| }
|
|
|
|
|
| void Translation::BeginCompiledStubFrame(int height) {
|
| - buffer_->Add(COMPILED_STUB_FRAME, zone());
|
| - buffer_->Add(height, zone());
|
| + buffer_->Add(COMPILED_STUB_FRAME);
|
| + buffer_->Add(height);
|
| }
|
|
|
|
|
| void Translation::BeginArgumentsObject(int args_length) {
|
| - buffer_->Add(ARGUMENTS_OBJECT, zone());
|
| - buffer_->Add(args_length, zone());
|
| + buffer_->Add(ARGUMENTS_OBJECT);
|
| + buffer_->Add(args_length);
|
| }
|
|
|
|
|
| void Translation::BeginCapturedObject(int length) {
|
| - buffer_->Add(CAPTURED_OBJECT, zone());
|
| - buffer_->Add(length, zone());
|
| + buffer_->Add(CAPTURED_OBJECT);
|
| + buffer_->Add(length);
|
| }
|
|
|
|
|
| void Translation::DuplicateObject(int object_index) {
|
| - buffer_->Add(DUPLICATED_OBJECT, zone());
|
| - buffer_->Add(object_index, zone());
|
| + buffer_->Add(DUPLICATED_OBJECT);
|
| + buffer_->Add(object_index);
|
| }
|
|
|
|
|
| void Translation::StoreRegister(Register reg) {
|
| - buffer_->Add(REGISTER, zone());
|
| - buffer_->Add(reg.code(), zone());
|
| + buffer_->Add(REGISTER);
|
| + buffer_->Add(reg.code());
|
| }
|
|
|
|
|
| void Translation::StoreInt32Register(Register reg) {
|
| - buffer_->Add(INT32_REGISTER, zone());
|
| - buffer_->Add(reg.code(), zone());
|
| + buffer_->Add(INT32_REGISTER);
|
| + buffer_->Add(reg.code());
|
| }
|
|
|
|
|
| void Translation::StoreUint32Register(Register reg) {
|
| - buffer_->Add(UINT32_REGISTER, zone());
|
| - buffer_->Add(reg.code(), zone());
|
| + buffer_->Add(UINT32_REGISTER);
|
| + buffer_->Add(reg.code());
|
| }
|
|
|
|
|
| void Translation::StoreBoolRegister(Register reg) {
|
| - buffer_->Add(BOOL_REGISTER, zone());
|
| - buffer_->Add(reg.code(), zone());
|
| + buffer_->Add(BOOL_REGISTER);
|
| + buffer_->Add(reg.code());
|
| }
|
|
|
| void Translation::StoreFloatRegister(FloatRegister reg) {
|
| - buffer_->Add(FLOAT_REGISTER, zone());
|
| - buffer_->Add(reg.code(), zone());
|
| + buffer_->Add(FLOAT_REGISTER);
|
| + buffer_->Add(reg.code());
|
| }
|
|
|
| void Translation::StoreDoubleRegister(DoubleRegister reg) {
|
| - buffer_->Add(DOUBLE_REGISTER, zone());
|
| - buffer_->Add(reg.code(), zone());
|
| + buffer_->Add(DOUBLE_REGISTER);
|
| + buffer_->Add(reg.code());
|
| }
|
|
|
|
|
| void Translation::StoreStackSlot(int index) {
|
| - buffer_->Add(STACK_SLOT, zone());
|
| - buffer_->Add(index, zone());
|
| + buffer_->Add(STACK_SLOT);
|
| + buffer_->Add(index);
|
| }
|
|
|
|
|
| void Translation::StoreInt32StackSlot(int index) {
|
| - buffer_->Add(INT32_STACK_SLOT, zone());
|
| - buffer_->Add(index, zone());
|
| + buffer_->Add(INT32_STACK_SLOT);
|
| + buffer_->Add(index);
|
| }
|
|
|
|
|
| void Translation::StoreUint32StackSlot(int index) {
|
| - buffer_->Add(UINT32_STACK_SLOT, zone());
|
| - buffer_->Add(index, zone());
|
| + buffer_->Add(UINT32_STACK_SLOT);
|
| + buffer_->Add(index);
|
| }
|
|
|
|
|
| void Translation::StoreBoolStackSlot(int index) {
|
| - buffer_->Add(BOOL_STACK_SLOT, zone());
|
| - buffer_->Add(index, zone());
|
| + buffer_->Add(BOOL_STACK_SLOT);
|
| + buffer_->Add(index);
|
| }
|
|
|
| void Translation::StoreFloatStackSlot(int index) {
|
| - buffer_->Add(FLOAT_STACK_SLOT, zone());
|
| - buffer_->Add(index, zone());
|
| + buffer_->Add(FLOAT_STACK_SLOT);
|
| + buffer_->Add(index);
|
| }
|
|
|
| void Translation::StoreDoubleStackSlot(int index) {
|
| - buffer_->Add(DOUBLE_STACK_SLOT, zone());
|
| - buffer_->Add(index, zone());
|
| + buffer_->Add(DOUBLE_STACK_SLOT);
|
| + buffer_->Add(index);
|
| }
|
|
|
|
|
| void Translation::StoreLiteral(int literal_id) {
|
| - buffer_->Add(LITERAL, zone());
|
| - buffer_->Add(literal_id, zone());
|
| + buffer_->Add(LITERAL);
|
| + buffer_->Add(literal_id);
|
| }
|
|
|
|
|
| void Translation::StoreArgumentsObject(bool args_known,
|
| int args_index,
|
| int args_length) {
|
| - buffer_->Add(ARGUMENTS_OBJECT, zone());
|
| - buffer_->Add(args_known, zone());
|
| - buffer_->Add(args_index, zone());
|
| - buffer_->Add(args_length, zone());
|
| + buffer_->Add(ARGUMENTS_OBJECT);
|
| + buffer_->Add(args_known);
|
| + buffer_->Add(args_index);
|
| + buffer_->Add(args_length);
|
| }
|
|
|
|
|
|
|