| Index: runtime/vm/code_patcher_ia32.cc
|
| ===================================================================
|
| --- runtime/vm/code_patcher_ia32.cc (revision 4412)
|
| +++ runtime/vm/code_patcher_ia32.cc (working copy)
|
| @@ -8,7 +8,6 @@
|
| #include "vm/assembler.h"
|
| #include "vm/code_patcher.h"
|
| #include "vm/cpu.h"
|
| -#include "vm/ic_data.h"
|
| #include "vm/instructions.h"
|
| #include "vm/object.h"
|
| #include "vm/raw_object.h"
|
| @@ -120,7 +119,7 @@
|
|
|
|
|
| // The expected pattern of a dart instance call:
|
| -// mov ECX, ic-data array
|
| +// mov ECX, ic-data
|
| // mov EDX, argument_descriptor_array
|
| // call target_address
|
| // <- return address
|
| @@ -129,13 +128,13 @@
|
| explicit InstanceCall(uword return_address)
|
| : DartCallPattern(return_address) {}
|
|
|
| - RawArray* ic_data() const {
|
| - Array& array = Array::Handle();
|
| - array ^= reinterpret_cast<RawObject*>(immediate_one());
|
| - return array.raw();
|
| + RawICData* ic_data() const {
|
| + ICData& ic_data = ICData::Handle();
|
| + ic_data ^= reinterpret_cast<RawObject*>(immediate_one());
|
| + return ic_data.raw();
|
| }
|
|
|
| - void SetIcData(const Array& value) {
|
| + void SetIcData(const ICData& value) {
|
| set_immediate_one(reinterpret_cast<int32_t>(value.raw()));
|
| }
|
|
|
| @@ -248,24 +247,17 @@
|
| *num_arguments = call.argument_count();
|
| *num_named_arguments = call.named_argument_count();
|
| *target = call.target();
|
| - ICData ic_data(Array::ZoneHandle(call.ic_data()));
|
| - *function_name = ic_data.FunctionName();
|
| + const ICData& ic_data = ICData::Handle(call.ic_data());
|
| + *function_name = ic_data.target_name();
|
| }
|
|
|
|
|
| -RawArray* CodePatcher::GetInstanceCallIcDataAt(uword return_address) {
|
| +RawICData* CodePatcher::GetInstanceCallIcDataAt(uword return_address) {
|
| InstanceCall call(return_address);
|
| return call.ic_data();
|
| }
|
|
|
|
|
| -void CodePatcher::SetInstanceCallIcDataAt(uword return_address,
|
| - const Array& ic_data) {
|
| - InstanceCall call(return_address);
|
| - call.SetIcData(ic_data);
|
| -}
|
| -
|
| -
|
| intptr_t CodePatcher::InstanceCallSizeInBytes() {
|
| return DartCallPattern::kNumInstructions * DartCallPattern::kInstructionSize;
|
| }
|
|
|