| Index: src/x64/macro-assembler-x64.cc
|
| diff --git a/src/x64/macro-assembler-x64.cc b/src/x64/macro-assembler-x64.cc
|
| index 5371afcdfef0a9a7893ca818215b62064cec29d1..36d3f064a0a26f1a37307c32dbba3e8a55d8314f 100644
|
| --- a/src/x64/macro-assembler-x64.cc
|
| +++ b/src/x64/macro-assembler-x64.cc
|
| @@ -4033,6 +4033,18 @@ Condition MacroAssembler::IsObjectNameType(Register heap_object,
|
| return below_equal;
|
| }
|
|
|
| +void MacroAssembler::GetMapConstructor(Register result, Register map,
|
| + Register temp) {
|
| + Label done, loop;
|
| + movp(result, FieldOperand(map, Map::kConstructorOrBackPointerOffset));
|
| + bind(&loop);
|
| + JumpIfSmi(result, &done, Label::kNear);
|
| + CmpObjectType(result, MAP_TYPE, temp);
|
| + j(not_equal, &done, Label::kNear);
|
| + movp(result, FieldOperand(result, Map::kConstructorOrBackPointerOffset));
|
| + jmp(&loop);
|
| + bind(&done);
|
| +}
|
|
|
| void MacroAssembler::SetCounter(StatsCounter* counter, int value) {
|
| if (FLAG_native_code_counters && counter->Enabled()) {
|
|
|