| Index: src/full-codegen/mips64/full-codegen-mips64.cc
|
| diff --git a/src/full-codegen/mips64/full-codegen-mips64.cc b/src/full-codegen/mips64/full-codegen-mips64.cc
|
| index 00d8155c7612865b73c6688b2a9403829a3195c2..dee58ea63395161a0d2a5fe9fa6c107f6d5fd17b 100644
|
| --- a/src/full-codegen/mips64/full-codegen-mips64.cc
|
| +++ b/src/full-codegen/mips64/full-codegen-mips64.cc
|
| @@ -123,7 +123,7 @@ void FullCodeGenerator::Generate() {
|
|
|
| if (FLAG_debug_code && info->ExpectsJSReceiverAsReceiver()) {
|
| int receiver_offset = info->scope()->num_parameters() * kPointerSize;
|
| - __ ld(a2, MemOperand(sp, receiver_offset));
|
| + __ Ld(a2, MemOperand(sp, receiver_offset));
|
| __ AssertNotSmi(a2);
|
| __ GetObjectType(a2, a2, a2);
|
| __ Check(ge, kSloppyFunctionExpectsJSReceiverReceiver, a2,
|
| @@ -140,13 +140,13 @@ void FullCodeGenerator::Generate() {
|
| // Increment invocation count for the function.
|
| {
|
| Comment cmnt(masm_, "[ Increment invocation count");
|
| - __ ld(a0, FieldMemOperand(a1, JSFunction::kFeedbackVectorOffset));
|
| - __ ld(a0, FieldMemOperand(a0, Cell::kValueOffset));
|
| - __ ld(a4, FieldMemOperand(
|
| + __ Ld(a0, FieldMemOperand(a1, JSFunction::kFeedbackVectorOffset));
|
| + __ Ld(a0, FieldMemOperand(a0, Cell::kValueOffset));
|
| + __ Ld(a4, FieldMemOperand(
|
| a0, FeedbackVector::kInvocationCountIndex * kPointerSize +
|
| FeedbackVector::kHeaderSize));
|
| __ Daddu(a4, a4, Operand(Smi::FromInt(1)));
|
| - __ sd(a4, FieldMemOperand(
|
| + __ Sd(a4, FieldMemOperand(
|
| a0, FeedbackVector::kInvocationCountIndex * kPointerSize +
|
| FeedbackVector::kHeaderSize));
|
| }
|
| @@ -173,7 +173,7 @@ void FullCodeGenerator::Generate() {
|
| // Do pushes.
|
| __ Dsubu(sp, sp, Operand(kMaxPushes * kPointerSize));
|
| for (int i = 0; i < kMaxPushes; i++) {
|
| - __ sd(t1, MemOperand(sp, i * kPointerSize));
|
| + __ Sd(t1, MemOperand(sp, i * kPointerSize));
|
| }
|
| // Continue loop if not done.
|
| __ Dsubu(a2, a2, Operand(1));
|
| @@ -183,7 +183,7 @@ void FullCodeGenerator::Generate() {
|
| // Emit the remaining pushes.
|
| __ Dsubu(sp, sp, Operand(remaining * kPointerSize));
|
| for (int i = 0; i < remaining; i++) {
|
| - __ sd(t1, MemOperand(sp, i * kPointerSize));
|
| + __ Sd(t1, MemOperand(sp, i * kPointerSize));
|
| }
|
| }
|
| }
|
| @@ -229,7 +229,7 @@ void FullCodeGenerator::Generate() {
|
| // Context is returned in v0. It replaces the context passed to us.
|
| // It's saved in the stack and kept live in cp.
|
| __ mov(cp, v0);
|
| - __ sd(v0, MemOperand(fp, StandardFrameConstants::kContextOffset));
|
| + __ Sd(v0, MemOperand(fp, StandardFrameConstants::kContextOffset));
|
| // Copy any necessary parameters into the context.
|
| int num_parameters = info->scope()->num_parameters();
|
| int first_parameter = info->scope()->has_this_declaration() ? -1 : 0;
|
| @@ -240,10 +240,10 @@ void FullCodeGenerator::Generate() {
|
| int parameter_offset = StandardFrameConstants::kCallerSPOffset +
|
| (num_parameters - 1 - i) * kPointerSize;
|
| // Load parameter from stack.
|
| - __ ld(a0, MemOperand(fp, parameter_offset));
|
| + __ Ld(a0, MemOperand(fp, parameter_offset));
|
| // Store it in the context.
|
| MemOperand target = ContextMemOperand(cp, var->index());
|
| - __ sd(a0, target);
|
| + __ Sd(a0, target);
|
|
|
| // Update the write barrier.
|
| if (need_write_barrier) {
|
| @@ -276,7 +276,7 @@ void FullCodeGenerator::Generate() {
|
| Comment cmnt(masm_, "[ Allocate arguments object");
|
| if (!function_in_register_a1) {
|
| // Load this again, if it's used by the local context below.
|
| - __ ld(a1, MemOperand(fp, JavaScriptFrameConstants::kFunctionOffset));
|
| + __ Ld(a1, MemOperand(fp, JavaScriptFrameConstants::kFunctionOffset));
|
| }
|
| if (is_strict(language_mode()) || !has_simple_parameters()) {
|
| Callable callable = CodeFactory::FastNewStrictArguments(isolate());
|
| @@ -351,9 +351,9 @@ void FullCodeGenerator::ClearAccumulator() {
|
|
|
| void FullCodeGenerator::EmitProfilingCounterDecrement(int delta) {
|
| __ li(a2, Operand(profiling_counter_));
|
| - __ ld(a3, FieldMemOperand(a2, Cell::kValueOffset));
|
| + __ Ld(a3, FieldMemOperand(a2, Cell::kValueOffset));
|
| __ Dsubu(a3, a3, Operand(Smi::FromInt(delta)));
|
| - __ sd(a3, FieldMemOperand(a2, Cell::kValueOffset));
|
| + __ Sd(a3, FieldMemOperand(a2, Cell::kValueOffset));
|
| }
|
|
|
|
|
| @@ -365,7 +365,7 @@ void FullCodeGenerator::EmitProfilingCounterReset() {
|
| }
|
| __ li(a2, Operand(profiling_counter_));
|
| __ li(a3, Operand(Smi::FromInt(reset_value)));
|
| - __ sd(a3, FieldMemOperand(a2, Cell::kValueOffset));
|
| + __ Sd(a3, FieldMemOperand(a2, Cell::kValueOffset));
|
| }
|
|
|
|
|
| @@ -456,7 +456,7 @@ void FullCodeGenerator::EmitReturnSequence() {
|
| }
|
|
|
| void FullCodeGenerator::RestoreContext() {
|
| - __ ld(cp, MemOperand(fp, StandardFrameConstants::kContextOffset));
|
| + __ Ld(cp, MemOperand(fp, StandardFrameConstants::kContextOffset));
|
| }
|
|
|
| void FullCodeGenerator::StackValueContext::Plug(Variable* var) const {
|
| @@ -552,7 +552,7 @@ void FullCodeGenerator::StackValueContext::DropAndPlug(int count,
|
| Register reg) const {
|
| DCHECK(count > 0);
|
| if (count > 1) codegen()->DropOperands(count - 1);
|
| - __ sd(reg, MemOperand(sp, 0));
|
| + __ Sd(reg, MemOperand(sp, 0));
|
| }
|
|
|
|
|
| @@ -686,7 +686,7 @@ MemOperand FullCodeGenerator::VarOperand(Variable* var, Register scratch) {
|
| void FullCodeGenerator::GetVar(Register dest, Variable* var) {
|
| // Use destination as scratch.
|
| MemOperand location = VarOperand(var, dest);
|
| - __ ld(dest, location);
|
| + __ Ld(dest, location);
|
| }
|
|
|
|
|
| @@ -699,7 +699,7 @@ void FullCodeGenerator::SetVar(Variable* var,
|
| DCHECK(!scratch0.is(scratch1));
|
| DCHECK(!scratch1.is(src));
|
| MemOperand location = VarOperand(var, scratch0);
|
| - __ sd(src, location);
|
| + __ Sd(src, location);
|
| // Emit the write barrier code if the location is in the heap.
|
| if (var->IsContextSlot()) {
|
| __ RecordWriteContextSlot(scratch0,
|
| @@ -738,7 +738,7 @@ void FullCodeGenerator::EmitDebugCheckDeclarationContext(Variable* variable) {
|
| DCHECK_EQ(0, scope()->ContextChainLength(variable->scope()));
|
| if (FLAG_debug_code) {
|
| // Check that we're not inside a with or catch context.
|
| - __ ld(a1, FieldMemOperand(cp, HeapObject::kMapOffset));
|
| + __ Ld(a1, FieldMemOperand(cp, HeapObject::kMapOffset));
|
| __ LoadRoot(a4, Heap::kWithContextMapRootIndex);
|
| __ Check(ne, kDeclarationInWithContext,
|
| a1, Operand(a4));
|
| @@ -769,7 +769,7 @@ void FullCodeGenerator::VisitVariableDeclaration(
|
| if (variable->binding_needs_init()) {
|
| Comment cmnt(masm_, "[ VariableDeclaration");
|
| __ LoadRoot(a4, Heap::kTheHoleValueRootIndex);
|
| - __ sd(a4, StackOperand(variable));
|
| + __ Sd(a4, StackOperand(variable));
|
| }
|
| break;
|
|
|
| @@ -778,7 +778,7 @@ void FullCodeGenerator::VisitVariableDeclaration(
|
| Comment cmnt(masm_, "[ VariableDeclaration");
|
| EmitDebugCheckDeclarationContext(variable);
|
| __ LoadRoot(at, Heap::kTheHoleValueRootIndex);
|
| - __ sd(at, ContextMemOperand(cp, variable->index()));
|
| + __ Sd(at, ContextMemOperand(cp, variable->index()));
|
| // No write barrier since the_hole_value is in old space.
|
| PrepareForBailoutForId(proxy->id(), BailoutState::NO_REGISTERS);
|
| }
|
| @@ -819,7 +819,7 @@ void FullCodeGenerator::VisitFunctionDeclaration(
|
| case VariableLocation::LOCAL: {
|
| Comment cmnt(masm_, "[ FunctionDeclaration");
|
| VisitForAccumulatorValue(declaration->fun());
|
| - __ sd(result_register(), StackOperand(variable));
|
| + __ Sd(result_register(), StackOperand(variable));
|
| break;
|
| }
|
|
|
| @@ -827,7 +827,7 @@ void FullCodeGenerator::VisitFunctionDeclaration(
|
| Comment cmnt(masm_, "[ FunctionDeclaration");
|
| EmitDebugCheckDeclarationContext(variable);
|
| VisitForAccumulatorValue(declaration->fun());
|
| - __ sd(result_register(), ContextMemOperand(cp, variable->index()));
|
| + __ Sd(result_register(), ContextMemOperand(cp, variable->index()));
|
| int offset = Context::SlotOffset(variable->index());
|
| // We know that we have written a function, which is not a smi.
|
| __ RecordWriteContextSlot(cp,
|
| @@ -893,7 +893,7 @@ void FullCodeGenerator::VisitSwitchStatement(SwitchStatement* stmt) {
|
| __ mov(a0, result_register()); // CompareStub requires args in a0, a1.
|
|
|
| // Perform the comparison as if via '==='.
|
| - __ ld(a1, MemOperand(sp, 0)); // Switch value.
|
| + __ Ld(a1, MemOperand(sp, 0)); // Switch value.
|
| bool inline_smi_code = ShouldInlineSmiCase(Token::EQ_STRICT);
|
| JumpPatchSite patch_site(masm_);
|
| if (inline_smi_code) {
|
| @@ -999,7 +999,7 @@ void FullCodeGenerator::VisitForInStatement(ForInStatement* stmt) {
|
| // The enum cache is valid. Load the map of the object being
|
| // iterated over and use the cache for the iteration.
|
| Label use_cache;
|
| - __ ld(v0, FieldMemOperand(a0, HeapObject::kMapOffset));
|
| + __ Ld(v0, FieldMemOperand(a0, HeapObject::kMapOffset));
|
| __ Branch(&use_cache);
|
|
|
| // Get the set of properties to enumerate.
|
| @@ -1012,7 +1012,7 @@ void FullCodeGenerator::VisitForInStatement(ForInStatement* stmt) {
|
| // modification check. Otherwise, we got a fixed array, and we have
|
| // to do a slow check.
|
| Label fixed_array;
|
| - __ ld(a2, FieldMemOperand(v0, HeapObject::kMapOffset));
|
| + __ Ld(a2, FieldMemOperand(v0, HeapObject::kMapOffset));
|
| __ LoadRoot(at, Heap::kMetaMapRootIndex);
|
| __ Branch(&fixed_array, ne, a2, Operand(at));
|
|
|
| @@ -1024,8 +1024,8 @@ void FullCodeGenerator::VisitForInStatement(ForInStatement* stmt) {
|
| __ Branch(&no_descriptors, eq, a1, Operand(Smi::kZero));
|
|
|
| __ LoadInstanceDescriptors(v0, a2);
|
| - __ ld(a2, FieldMemOperand(a2, DescriptorArray::kEnumCacheOffset));
|
| - __ ld(a2, FieldMemOperand(a2, DescriptorArray::kEnumCacheBridgeCacheOffset));
|
| + __ Ld(a2, FieldMemOperand(a2, DescriptorArray::kEnumCacheOffset));
|
| + __ Ld(a2, FieldMemOperand(a2, DescriptorArray::kEnumCacheBridgeCacheOffset));
|
|
|
| // Set up the four remaining stack slots.
|
| __ li(a0, Operand(Smi::kZero));
|
| @@ -1042,7 +1042,7 @@ void FullCodeGenerator::VisitForInStatement(ForInStatement* stmt) {
|
|
|
| __ li(a1, Operand(Smi::FromInt(1))); // Smi(1) indicates slow check
|
| __ Push(a1, v0); // Smi and array
|
| - __ ld(a1, FieldMemOperand(v0, FixedArray::kLengthOffset));
|
| + __ Ld(a1, FieldMemOperand(v0, FixedArray::kLengthOffset));
|
| __ Push(a1); // Fixed array length (as smi).
|
| PrepareForBailoutForId(stmt->PrepareId(), BailoutState::NO_REGISTERS);
|
| __ li(a0, Operand(Smi::kZero));
|
| @@ -1053,33 +1053,33 @@ void FullCodeGenerator::VisitForInStatement(ForInStatement* stmt) {
|
| SetExpressionAsStatementPosition(stmt->each());
|
|
|
| // Load the current count to a0, load the length to a1.
|
| - __ ld(a0, MemOperand(sp, 0 * kPointerSize));
|
| - __ ld(a1, MemOperand(sp, 1 * kPointerSize));
|
| + __ Ld(a0, MemOperand(sp, 0 * kPointerSize));
|
| + __ Ld(a1, MemOperand(sp, 1 * kPointerSize));
|
| __ Branch(loop_statement.break_label(), hs, a0, Operand(a1));
|
|
|
| // Get the current entry of the array into register a3.
|
| - __ ld(a2, MemOperand(sp, 2 * kPointerSize));
|
| + __ Ld(a2, MemOperand(sp, 2 * kPointerSize));
|
| __ Daddu(a2, a2, Operand(FixedArray::kHeaderSize - kHeapObjectTag));
|
| __ SmiScale(a4, a0, kPointerSizeLog2);
|
| __ daddu(a4, a2, a4); // Array base + scaled (smi) index.
|
| - __ ld(result_register(), MemOperand(a4)); // Current entry.
|
| + __ Ld(result_register(), MemOperand(a4)); // Current entry.
|
|
|
| // Get the expected map from the stack or a smi in the
|
| // permanent slow case into register a2.
|
| - __ ld(a2, MemOperand(sp, 3 * kPointerSize));
|
| + __ Ld(a2, MemOperand(sp, 3 * kPointerSize));
|
|
|
| // Check if the expected map still matches that of the enumerable.
|
| // If not, we may have to filter the key.
|
| Label update_each;
|
| - __ ld(a1, MemOperand(sp, 4 * kPointerSize));
|
| - __ ld(a4, FieldMemOperand(a1, HeapObject::kMapOffset));
|
| + __ Ld(a1, MemOperand(sp, 4 * kPointerSize));
|
| + __ Ld(a4, FieldMemOperand(a1, HeapObject::kMapOffset));
|
| __ Branch(&update_each, eq, a4, Operand(a2));
|
|
|
| // We need to filter the key, record slow-path here.
|
| int const vector_index = SmiFromSlot(slot)->value();
|
| __ EmitLoadFeedbackVector(a3);
|
| __ li(a2, Operand(FeedbackVector::MegamorphicSentinel(isolate())));
|
| - __ sd(a2, FieldMemOperand(a3, FixedArray::OffsetOfElementAt(vector_index)));
|
| + __ Sd(a2, FieldMemOperand(a3, FixedArray::OffsetOfElementAt(vector_index)));
|
|
|
| __ mov(a0, result_register());
|
| // a0 contains the key. The receiver in a1 is the second argument to the
|
| @@ -1130,8 +1130,8 @@ void FullCodeGenerator::VisitForInStatement(ForInStatement* stmt) {
|
| void FullCodeGenerator::EmitSetHomeObject(Expression* initializer, int offset,
|
| FeedbackSlot slot) {
|
| DCHECK(NeedsHomeObject(initializer));
|
| - __ ld(StoreDescriptor::ReceiverRegister(), MemOperand(sp));
|
| - __ ld(StoreDescriptor::ValueRegister(),
|
| + __ Ld(StoreDescriptor::ReceiverRegister(), MemOperand(sp));
|
| + __ Ld(StoreDescriptor::ValueRegister(),
|
| MemOperand(sp, offset * kPointerSize));
|
| CallStoreIC(slot, isolate()->factory()->home_object_symbol());
|
| }
|
| @@ -1141,7 +1141,7 @@ void FullCodeGenerator::EmitSetHomeObjectAccumulator(Expression* initializer,
|
| FeedbackSlot slot) {
|
| DCHECK(NeedsHomeObject(initializer));
|
| __ Move(StoreDescriptor::ReceiverRegister(), v0);
|
| - __ ld(StoreDescriptor::ValueRegister(),
|
| + __ Ld(StoreDescriptor::ValueRegister(),
|
| MemOperand(sp, offset * kPointerSize));
|
| CallStoreIC(slot, isolate()->factory()->home_object_symbol());
|
| }
|
| @@ -1216,7 +1216,7 @@ void FullCodeGenerator::VisitObjectLiteral(ObjectLiteral* expr) {
|
|
|
| Handle<BoilerplateDescription> constant_properties =
|
| expr->GetOrBuildConstantProperties(isolate());
|
| - __ ld(a3, MemOperand(fp, JavaScriptFrameConstants::kFunctionOffset));
|
| + __ Ld(a3, MemOperand(fp, JavaScriptFrameConstants::kFunctionOffset));
|
| __ li(a2, Operand(SmiFromSlot(expr->literal_slot())));
|
| __ li(a1, Operand(constant_properties));
|
| __ li(a0, Operand(Smi::FromInt(expr->ComputeFlags())));
|
| @@ -1263,7 +1263,7 @@ void FullCodeGenerator::VisitObjectLiteral(ObjectLiteral* expr) {
|
| VisitForAccumulatorValue(value);
|
| __ mov(StoreDescriptor::ValueRegister(), result_register());
|
| DCHECK(StoreDescriptor::ValueRegister().is(a0));
|
| - __ ld(StoreDescriptor::ReceiverRegister(), MemOperand(sp));
|
| + __ Ld(StoreDescriptor::ReceiverRegister(), MemOperand(sp));
|
| CallStoreIC(property->GetSlot(0), key->value(), kStoreOwn);
|
| PrepareForBailoutForId(key->id(), BailoutState::NO_REGISTERS);
|
|
|
| @@ -1276,7 +1276,7 @@ void FullCodeGenerator::VisitObjectLiteral(ObjectLiteral* expr) {
|
| break;
|
| }
|
| // Duplicate receiver on stack.
|
| - __ ld(a0, MemOperand(sp));
|
| + __ Ld(a0, MemOperand(sp));
|
| PushOperand(a0);
|
| VisitForStackValue(key);
|
| VisitForStackValue(value);
|
| @@ -1293,7 +1293,7 @@ void FullCodeGenerator::VisitObjectLiteral(ObjectLiteral* expr) {
|
| break;
|
| case ObjectLiteral::Property::PROTOTYPE:
|
| // Duplicate receiver on stack.
|
| - __ ld(a0, MemOperand(sp));
|
| + __ Ld(a0, MemOperand(sp));
|
| PushOperand(a0);
|
| VisitForStackValue(value);
|
| DCHECK(property->emit_store());
|
| @@ -1323,7 +1323,7 @@ void FullCodeGenerator::VisitObjectLiteral(ObjectLiteral* expr) {
|
| for (AccessorTable::Iterator it = accessor_table.begin();
|
| it != accessor_table.end();
|
| ++it) {
|
| - __ ld(a0, MemOperand(sp)); // Duplicate receiver.
|
| + __ Ld(a0, MemOperand(sp)); // Duplicate receiver.
|
| PushOperand(a0);
|
| VisitForStackValue(it->first);
|
| EmitAccessor(it->second->getter);
|
| @@ -1349,7 +1349,7 @@ void FullCodeGenerator::VisitArrayLiteral(ArrayLiteral* expr) {
|
| expr->GetOrBuildConstantElements(isolate());
|
|
|
| __ mov(a0, result_register());
|
| - __ ld(a3, MemOperand(fp, JavaScriptFrameConstants::kFunctionOffset));
|
| + __ Ld(a3, MemOperand(fp, JavaScriptFrameConstants::kFunctionOffset));
|
| __ li(a2, Operand(SmiFromSlot(expr->literal_slot())));
|
| __ li(a1, Operand(constant_elements));
|
| if (MustCreateArrayLiteralWithRuntime(expr)) {
|
| @@ -1386,7 +1386,7 @@ void FullCodeGenerator::VisitArrayLiteral(ArrayLiteral* expr) {
|
| VisitForAccumulatorValue(subexpr);
|
|
|
| __ li(StoreDescriptor::NameRegister(), Operand(Smi::FromInt(array_index)));
|
| - __ ld(StoreDescriptor::ReceiverRegister(), MemOperand(sp, 0));
|
| + __ Ld(StoreDescriptor::ReceiverRegister(), MemOperand(sp, 0));
|
| __ mov(StoreDescriptor::ValueRegister(), result_register());
|
| CallKeyedStoreIC(expr->LiteralFeedbackSlot());
|
|
|
| @@ -1419,7 +1419,7 @@ void FullCodeGenerator::VisitAssignment(Assignment* expr) {
|
| if (expr->is_compound()) {
|
| // We need the receiver both on the stack and in the register.
|
| VisitForStackValue(property->obj());
|
| - __ ld(LoadDescriptor::ReceiverRegister(), MemOperand(sp, 0));
|
| + __ Ld(LoadDescriptor::ReceiverRegister(), MemOperand(sp, 0));
|
| } else {
|
| VisitForStackValue(property->obj());
|
| }
|
| @@ -1429,9 +1429,9 @@ void FullCodeGenerator::VisitAssignment(Assignment* expr) {
|
| if (expr->is_compound()) {
|
| VisitForStackValue(property->obj());
|
| VisitForStackValue(property->key());
|
| - __ ld(LoadDescriptor::ReceiverRegister(),
|
| + __ Ld(LoadDescriptor::ReceiverRegister(),
|
| MemOperand(sp, 1 * kPointerSize));
|
| - __ ld(LoadDescriptor::NameRegister(), MemOperand(sp, 0));
|
| + __ Ld(LoadDescriptor::NameRegister(), MemOperand(sp, 0));
|
| } else {
|
| VisitForStackValue(property->obj());
|
| VisitForStackValue(property->key());
|
| @@ -1567,11 +1567,11 @@ void FullCodeGenerator::EmitCreateIteratorResult(bool done) {
|
| __ LoadRoot(a3,
|
| done ? Heap::kTrueValueRootIndex : Heap::kFalseValueRootIndex);
|
| __ LoadRoot(a4, Heap::kEmptyFixedArrayRootIndex);
|
| - __ sd(a1, FieldMemOperand(v0, HeapObject::kMapOffset));
|
| - __ sd(a4, FieldMemOperand(v0, JSObject::kPropertiesOffset));
|
| - __ sd(a4, FieldMemOperand(v0, JSObject::kElementsOffset));
|
| - __ sd(a2, FieldMemOperand(v0, JSIteratorResult::kValueOffset));
|
| - __ sd(a3, FieldMemOperand(v0, JSIteratorResult::kDoneOffset));
|
| + __ Sd(a1, FieldMemOperand(v0, HeapObject::kMapOffset));
|
| + __ Sd(a4, FieldMemOperand(v0, JSObject::kPropertiesOffset));
|
| + __ Sd(a4, FieldMemOperand(v0, JSObject::kElementsOffset));
|
| + __ Sd(a2, FieldMemOperand(v0, JSIteratorResult::kValueOffset));
|
| + __ Sd(a3, FieldMemOperand(v0, JSIteratorResult::kDoneOffset));
|
| STATIC_ASSERT(JSIteratorResult::kSize == 5 * kPointerSize);
|
| }
|
|
|
| @@ -1717,7 +1717,7 @@ void FullCodeGenerator::EmitAssignment(Expression* expr, FeedbackSlot slot) {
|
|
|
| void FullCodeGenerator::EmitStoreToStackLocalOrContextSlot(
|
| Variable* var, MemOperand location) {
|
| - __ sd(result_register(), location);
|
| + __ Sd(result_register(), location);
|
| if (var->IsContextSlot()) {
|
| // RecordWrite may destroy all its register arguments.
|
| __ Move(a3, result_register());
|
| @@ -1743,7 +1743,7 @@ void FullCodeGenerator::EmitVariableAssignment(Variable* var, Token::Value op,
|
| // Perform an initialization check for lexically declared variables.
|
| if (hole_check_mode == HoleCheckMode::kRequired) {
|
| Label assign;
|
| - __ ld(a3, location);
|
| + __ Ld(a3, location);
|
| __ LoadRoot(a4, Heap::kTheHoleValueRootIndex);
|
| __ Branch(&assign, ne, a3, Operand(a4));
|
| __ li(a3, Operand(var->name()));
|
| @@ -1761,7 +1761,7 @@ void FullCodeGenerator::EmitVariableAssignment(Variable* var, Token::Value op,
|
| DCHECK(var->IsStackAllocated() || var->IsContextSlot());
|
| Label uninitialized_this;
|
| MemOperand location = VarOperand(var, a1);
|
| - __ ld(a3, location);
|
| + __ Ld(a3, location);
|
| __ LoadRoot(at, Heap::kTheHoleValueRootIndex);
|
| __ Branch(&uninitialized_this, eq, a3, Operand(at));
|
| __ li(a0, Operand(var->name()));
|
| @@ -1779,7 +1779,7 @@ void FullCodeGenerator::EmitVariableAssignment(Variable* var, Token::Value op,
|
| MemOperand location = VarOperand(var, a1);
|
| if (FLAG_debug_code && var->mode() == LET && op == Token::INIT) {
|
| // Check for an uninitialized let binding.
|
| - __ ld(a2, location);
|
| + __ Ld(a2, location);
|
| __ LoadRoot(a4, Heap::kTheHoleValueRootIndex);
|
| __ Check(eq, kLetBindingReInitialization, a2, Operand(a4));
|
| }
|
| @@ -1841,14 +1841,14 @@ void FullCodeGenerator::EmitCallWithLoadIC(Call* expr) {
|
| // Load the function from the receiver.
|
| DCHECK(callee->IsProperty());
|
| DCHECK(!callee->AsProperty()->IsSuperAccess());
|
| - __ ld(LoadDescriptor::ReceiverRegister(), MemOperand(sp, 0));
|
| + __ Ld(LoadDescriptor::ReceiverRegister(), MemOperand(sp, 0));
|
| EmitNamedPropertyLoad(callee->AsProperty());
|
| PrepareForBailoutForId(callee->AsProperty()->LoadId(),
|
| BailoutState::TOS_REGISTER);
|
| // Push the target function under the receiver.
|
| - __ ld(at, MemOperand(sp, 0));
|
| + __ Ld(at, MemOperand(sp, 0));
|
| PushOperand(at);
|
| - __ sd(v0, MemOperand(sp, kPointerSize));
|
| + __ Sd(v0, MemOperand(sp, kPointerSize));
|
| convert_mode = ConvertReceiverMode::kNotNullOrUndefined;
|
| }
|
|
|
| @@ -1866,16 +1866,16 @@ void FullCodeGenerator::EmitKeyedCallWithLoadIC(Call* expr,
|
|
|
| // Load the function from the receiver.
|
| DCHECK(callee->IsProperty());
|
| - __ ld(LoadDescriptor::ReceiverRegister(), MemOperand(sp, 0));
|
| + __ Ld(LoadDescriptor::ReceiverRegister(), MemOperand(sp, 0));
|
| __ Move(LoadDescriptor::NameRegister(), v0);
|
| EmitKeyedPropertyLoad(callee->AsProperty());
|
| PrepareForBailoutForId(callee->AsProperty()->LoadId(),
|
| BailoutState::TOS_REGISTER);
|
|
|
| // Push the target function under the receiver.
|
| - __ ld(at, MemOperand(sp, 0));
|
| + __ Ld(at, MemOperand(sp, 0));
|
| PushOperand(at);
|
| - __ sd(v0, MemOperand(sp, kPointerSize));
|
| + __ Sd(v0, MemOperand(sp, kPointerSize));
|
|
|
| EmitCall(expr, ConvertReceiverMode::kNotNullOrUndefined);
|
| }
|
| @@ -1904,7 +1904,7 @@ void FullCodeGenerator::EmitCall(Call* expr, ConvertReceiverMode mode) {
|
| CodeFactory::CallICTrampoline(isolate(), mode, expr->tail_call_mode())
|
| .code();
|
| __ li(a3, Operand(IntFromSlot(expr->CallFeedbackICSlot())));
|
| - __ ld(a1, MemOperand(sp, (arg_count + 1) * kPointerSize));
|
| + __ Ld(a1, MemOperand(sp, (arg_count + 1) * kPointerSize));
|
| __ li(a0, Operand(arg_count));
|
| CallIC(code);
|
| OperandStackDepthDecrement(arg_count + 1);
|
| @@ -1939,7 +1939,7 @@ void FullCodeGenerator::VisitCallNew(CallNew* expr) {
|
|
|
| // Load function and argument count into a1 and a0.
|
| __ li(a0, Operand(arg_count));
|
| - __ ld(a1, MemOperand(sp, arg_count * kPointerSize));
|
| + __ Ld(a1, MemOperand(sp, arg_count * kPointerSize));
|
|
|
| // Record call targets in unoptimized code.
|
| __ EmitLoadFeedbackVector(a2);
|
| @@ -2089,8 +2089,8 @@ void FullCodeGenerator::EmitClassOf(CallRuntime* expr) {
|
|
|
| // v0 now contains the constructor function. Grab the
|
| // instance class name from there.
|
| - __ ld(v0, FieldMemOperand(v0, JSFunction::kSharedFunctionInfoOffset));
|
| - __ ld(v0, FieldMemOperand(v0, SharedFunctionInfo::kInstanceClassNameOffset));
|
| + __ Ld(v0, FieldMemOperand(v0, JSFunction::kSharedFunctionInfoOffset));
|
| + __ Ld(v0, FieldMemOperand(v0, SharedFunctionInfo::kInstanceClassNameOffset));
|
| __ Branch(&done);
|
|
|
| // Functions have class 'Function'.
|
| @@ -2165,7 +2165,7 @@ void FullCodeGenerator::EmitCall(CallRuntime* expr) {
|
| PrepareForBailoutForId(expr->CallId(), BailoutState::NO_REGISTERS);
|
| // Move target to a1.
|
| int const argc = args->length() - 2;
|
| - __ ld(a1, MemOperand(sp, (argc + 1) * kPointerSize));
|
| + __ Ld(a1, MemOperand(sp, (argc + 1) * kPointerSize));
|
| // Call the target.
|
| __ li(a0, Operand(argc));
|
| __ Call(isolate()->builtins()->Call(), RelocInfo::CODE_TARGET);
|
| @@ -2180,8 +2180,8 @@ void FullCodeGenerator::EmitGetSuperConstructor(CallRuntime* expr) {
|
| DCHECK_EQ(1, args->length());
|
| VisitForAccumulatorValue(args->at(0));
|
| __ AssertFunction(v0);
|
| - __ ld(v0, FieldMemOperand(v0, HeapObject::kMapOffset));
|
| - __ ld(v0, FieldMemOperand(v0, Map::kPrototypeOffset));
|
| + __ Ld(v0, FieldMemOperand(v0, HeapObject::kMapOffset));
|
| + __ Ld(v0, FieldMemOperand(v0, Map::kPrototypeOffset));
|
| context()->Plug(v0);
|
| }
|
|
|
| @@ -2190,7 +2190,7 @@ void FullCodeGenerator::EmitDebugIsActive(CallRuntime* expr) {
|
| ExternalReference debug_is_active =
|
| ExternalReference::debug_is_active_address(isolate());
|
| __ li(at, Operand(debug_is_active));
|
| - __ lbu(v0, MemOperand(at));
|
| + __ Lbu(v0, MemOperand(at));
|
| __ SmiTag(v0);
|
| context()->Plug(v0);
|
| }
|
| @@ -2209,11 +2209,11 @@ void FullCodeGenerator::EmitCreateIterResultObject(CallRuntime* expr) {
|
| __ LoadNativeContextSlot(Context::ITERATOR_RESULT_MAP_INDEX, a1);
|
| __ Pop(a2, a3);
|
| __ LoadRoot(a4, Heap::kEmptyFixedArrayRootIndex);
|
| - __ sd(a1, FieldMemOperand(v0, HeapObject::kMapOffset));
|
| - __ sd(a4, FieldMemOperand(v0, JSObject::kPropertiesOffset));
|
| - __ sd(a4, FieldMemOperand(v0, JSObject::kElementsOffset));
|
| - __ sd(a2, FieldMemOperand(v0, JSIteratorResult::kValueOffset));
|
| - __ sd(a3, FieldMemOperand(v0, JSIteratorResult::kDoneOffset));
|
| + __ Sd(a1, FieldMemOperand(v0, HeapObject::kMapOffset));
|
| + __ Sd(a4, FieldMemOperand(v0, JSObject::kPropertiesOffset));
|
| + __ Sd(a4, FieldMemOperand(v0, JSObject::kElementsOffset));
|
| + __ Sd(a2, FieldMemOperand(v0, JSIteratorResult::kValueOffset));
|
| + __ Sd(a3, FieldMemOperand(v0, JSIteratorResult::kDoneOffset));
|
| STATIC_ASSERT(JSIteratorResult::kSize == 5 * kPointerSize);
|
| __ jmp(&done);
|
|
|
| @@ -2241,7 +2241,7 @@ void FullCodeGenerator::EmitCallJSRuntimeFunction(CallRuntime* expr) {
|
| int arg_count = args->length();
|
|
|
| SetCallPosition(expr);
|
| - __ ld(a1, MemOperand(sp, (arg_count + 1) * kPointerSize));
|
| + __ Ld(a1, MemOperand(sp, (arg_count + 1) * kPointerSize));
|
| __ li(a0, Operand(arg_count));
|
| __ Call(isolate()->builtins()->Call(ConvertReceiverMode::kNullOrUndefined),
|
| RelocInfo::CODE_TARGET);
|
| @@ -2382,7 +2382,7 @@ void FullCodeGenerator::VisitCountOperation(CountOperation* expr) {
|
| case NAMED_PROPERTY: {
|
| // Put the object both on the stack and in the register.
|
| VisitForStackValue(prop->obj());
|
| - __ ld(LoadDescriptor::ReceiverRegister(), MemOperand(sp, 0));
|
| + __ Ld(LoadDescriptor::ReceiverRegister(), MemOperand(sp, 0));
|
| EmitNamedPropertyLoad(prop);
|
| break;
|
| }
|
| @@ -2390,9 +2390,9 @@ void FullCodeGenerator::VisitCountOperation(CountOperation* expr) {
|
| case KEYED_PROPERTY: {
|
| VisitForStackValue(prop->obj());
|
| VisitForStackValue(prop->key());
|
| - __ ld(LoadDescriptor::ReceiverRegister(),
|
| + __ Ld(LoadDescriptor::ReceiverRegister(),
|
| MemOperand(sp, 1 * kPointerSize));
|
| - __ ld(LoadDescriptor::NameRegister(), MemOperand(sp, 0));
|
| + __ Ld(LoadDescriptor::NameRegister(), MemOperand(sp, 0));
|
| EmitKeyedPropertyLoad(prop);
|
| break;
|
| }
|
| @@ -2433,10 +2433,10 @@ void FullCodeGenerator::VisitCountOperation(CountOperation* expr) {
|
| __ push(v0);
|
| break;
|
| case NAMED_PROPERTY:
|
| - __ sd(v0, MemOperand(sp, kPointerSize));
|
| + __ Sd(v0, MemOperand(sp, kPointerSize));
|
| break;
|
| case KEYED_PROPERTY:
|
| - __ sd(v0, MemOperand(sp, 2 * kPointerSize));
|
| + __ Sd(v0, MemOperand(sp, 2 * kPointerSize));
|
| break;
|
| case NAMED_SUPER_PROPERTY:
|
| case KEYED_SUPER_PROPERTY:
|
| @@ -2471,10 +2471,10 @@ void FullCodeGenerator::VisitCountOperation(CountOperation* expr) {
|
| PushOperand(v0);
|
| break;
|
| case NAMED_PROPERTY:
|
| - __ sd(v0, MemOperand(sp, kPointerSize));
|
| + __ Sd(v0, MemOperand(sp, kPointerSize));
|
| break;
|
| case KEYED_PROPERTY:
|
| - __ sd(v0, MemOperand(sp, 2 * kPointerSize));
|
| + __ Sd(v0, MemOperand(sp, 2 * kPointerSize));
|
| break;
|
| case NAMED_SUPER_PROPERTY:
|
| case KEYED_SUPER_PROPERTY:
|
| @@ -2576,7 +2576,7 @@ void FullCodeGenerator::EmitLiteralCompareTypeof(Expression* expr,
|
| Factory* factory = isolate()->factory();
|
| if (String::Equals(check, factory->number_string())) {
|
| __ JumpIfSmi(v0, if_true);
|
| - __ ld(v0, FieldMemOperand(v0, HeapObject::kMapOffset));
|
| + __ Ld(v0, FieldMemOperand(v0, HeapObject::kMapOffset));
|
| __ LoadRoot(at, Heap::kHeapNumberMapRootIndex);
|
| Split(eq, v0, Operand(at), if_true, if_false, fall_through);
|
| } else if (String::Equals(check, factory->string_string())) {
|
| @@ -2598,14 +2598,14 @@ void FullCodeGenerator::EmitLiteralCompareTypeof(Expression* expr,
|
| __ Branch(if_false, eq, v0, Operand(at));
|
| __ JumpIfSmi(v0, if_false);
|
| // Check for undetectable objects => true.
|
| - __ ld(v0, FieldMemOperand(v0, HeapObject::kMapOffset));
|
| - __ lbu(a1, FieldMemOperand(v0, Map::kBitFieldOffset));
|
| + __ Ld(v0, FieldMemOperand(v0, HeapObject::kMapOffset));
|
| + __ Lbu(a1, FieldMemOperand(v0, Map::kBitFieldOffset));
|
| __ And(a1, a1, Operand(1 << Map::kIsUndetectable));
|
| Split(ne, a1, Operand(zero_reg), if_true, if_false, fall_through);
|
| } else if (String::Equals(check, factory->function_string())) {
|
| __ JumpIfSmi(v0, if_false);
|
| - __ ld(v0, FieldMemOperand(v0, HeapObject::kMapOffset));
|
| - __ lbu(a1, FieldMemOperand(v0, Map::kBitFieldOffset));
|
| + __ Ld(v0, FieldMemOperand(v0, HeapObject::kMapOffset));
|
| + __ Lbu(a1, FieldMemOperand(v0, Map::kBitFieldOffset));
|
| __ And(a1, a1,
|
| Operand((1 << Map::kIsCallable) | (1 << Map::kIsUndetectable)));
|
| Split(eq, a1, Operand(1 << Map::kIsCallable), if_true, if_false,
|
| @@ -2618,7 +2618,7 @@ void FullCodeGenerator::EmitLiteralCompareTypeof(Expression* expr,
|
| __ GetObjectType(v0, v0, a1);
|
| __ Branch(if_false, lt, a1, Operand(FIRST_JS_RECEIVER_TYPE));
|
| // Check for callable or undetectable objects => false.
|
| - __ lbu(a1, FieldMemOperand(v0, Map::kBitFieldOffset));
|
| + __ Lbu(a1, FieldMemOperand(v0, Map::kBitFieldOffset));
|
| __ And(a1, a1,
|
| Operand((1 << Map::kIsCallable) | (1 << Map::kIsUndetectable)));
|
| Split(eq, a1, Operand(zero_reg), if_true, if_false, fall_through);
|
| @@ -2721,8 +2721,8 @@ void FullCodeGenerator::EmitLiteralCompareNil(CompareOperation* expr,
|
| Split(eq, v0, Operand(a1), if_true, if_false, fall_through);
|
| } else {
|
| __ JumpIfSmi(v0, if_false);
|
| - __ ld(v0, FieldMemOperand(v0, HeapObject::kMapOffset));
|
| - __ lbu(a1, FieldMemOperand(v0, Map::kBitFieldOffset));
|
| + __ Ld(v0, FieldMemOperand(v0, HeapObject::kMapOffset));
|
| + __ Lbu(a1, FieldMemOperand(v0, Map::kBitFieldOffset));
|
| __ And(a1, a1, Operand(1 << Map::kIsUndetectable));
|
| Split(ne, a1, Operand(zero_reg), if_true, if_false, fall_through);
|
| }
|
| @@ -2742,20 +2742,20 @@ Register FullCodeGenerator::context_register() {
|
| void FullCodeGenerator::LoadFromFrameField(int frame_offset, Register value) {
|
| // DCHECK_EQ(POINTER_SIZE_ALIGN(frame_offset), frame_offset);
|
| DCHECK(IsAligned(frame_offset, kPointerSize));
|
| - // __ sw(value, MemOperand(fp, frame_offset));
|
| - __ ld(value, MemOperand(fp, frame_offset));
|
| + // __ Sw(value, MemOperand(fp, frame_offset));
|
| + __ Ld(value, MemOperand(fp, frame_offset));
|
| }
|
|
|
| void FullCodeGenerator::StoreToFrameField(int frame_offset, Register value) {
|
| // DCHECK_EQ(POINTER_SIZE_ALIGN(frame_offset), frame_offset);
|
| DCHECK(IsAligned(frame_offset, kPointerSize));
|
| - // __ sw(value, MemOperand(fp, frame_offset));
|
| - __ sd(value, MemOperand(fp, frame_offset));
|
| + // __ Sw(value, MemOperand(fp, frame_offset));
|
| + __ Sd(value, MemOperand(fp, frame_offset));
|
| }
|
|
|
|
|
| void FullCodeGenerator::LoadContextField(Register dst, int context_index) {
|
| - __ ld(dst, ContextMemOperand(cp, context_index));
|
| + __ Ld(dst, ContextMemOperand(cp, context_index));
|
| }
|
|
|
|
|
| @@ -2771,10 +2771,10 @@ void FullCodeGenerator::PushFunctionArgumentForContextAllocation() {
|
| // Contexts created by a call to eval have the same closure as the
|
| // context calling eval, not the anonymous closure containing the eval
|
| // code. Fetch it from the context.
|
| - __ ld(at, ContextMemOperand(cp, Context::CLOSURE_INDEX));
|
| + __ Ld(at, ContextMemOperand(cp, Context::CLOSURE_INDEX));
|
| } else {
|
| DCHECK(closure_scope->is_function_scope());
|
| - __ ld(at, MemOperand(fp, JavaScriptFrameConstants::kFunctionOffset));
|
| + __ Ld(at, MemOperand(fp, JavaScriptFrameConstants::kFunctionOffset));
|
| }
|
| PushOperand(at);
|
| }
|
|
|