Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(2)

Side by Side Diff: src/mips64/macro-assembler-mips64.cc

Issue 1233923002: MIPS64: Fix 'Fix keyed element access wrt string wrappers'. (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Created 5 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2012 the V8 project authors. All rights reserved. 1 // Copyright 2012 the V8 project authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include <limits.h> // For LONG_MIN, LONG_MAX. 5 #include <limits.h> // For LONG_MIN, LONG_MAX.
6 6
7 #include "src/v8.h" 7 #include "src/v8.h"
8 8
9 #if V8_TARGET_ARCH_MIPS64 9 #if V8_TARGET_ARCH_MIPS64
10 10
(...skipping 6198 matching lines...) Expand 10 before | Expand all | Expand 10 after
6209 6209
6210 6210
6211 void MacroAssembler::JumpIfDictionaryInPrototypeChain( 6211 void MacroAssembler::JumpIfDictionaryInPrototypeChain(
6212 Register object, 6212 Register object,
6213 Register scratch0, 6213 Register scratch0,
6214 Register scratch1, 6214 Register scratch1,
6215 Label* found) { 6215 Label* found) {
6216 DCHECK(!scratch1.is(scratch0)); 6216 DCHECK(!scratch1.is(scratch0));
6217 Factory* factory = isolate()->factory(); 6217 Factory* factory = isolate()->factory();
6218 Register current = scratch0; 6218 Register current = scratch0;
6219 Label loop_again; 6219 Label loop_again, end;
6220 6220
6221 // Scratch contained elements pointer. 6221 // Scratch contained elements pointer.
6222 Move(current, object); 6222 Move(current, object);
6223 ld(current, FieldMemOperand(current, HeapObject::kMapOffset));
6224 ld(current, FieldMemOperand(current, Map::kPrototypeOffset));
6225 Branch(&end, eq, current, Operand(factory->null_value()));
6223 6226
6224 // Loop based on the map going up the prototype chain. 6227 // Loop based on the map going up the prototype chain.
6225 bind(&loop_again); 6228 bind(&loop_again);
6226 ld(current, FieldMemOperand(current, HeapObject::kMapOffset)); 6229 ld(current, FieldMemOperand(current, HeapObject::kMapOffset));
6230 lbu(scratch1, FieldMemOperand(current, Map::kInstanceTypeOffset));
6231 STATIC_ASSERT(JS_VALUE_TYPE < JS_OBJECT_TYPE);
6232 STATIC_ASSERT(JS_PROXY_TYPE < JS_OBJECT_TYPE);
6233 Branch(found, lo, scratch1, Operand(JS_OBJECT_TYPE));
6227 lb(scratch1, FieldMemOperand(current, Map::kBitField2Offset)); 6234 lb(scratch1, FieldMemOperand(current, Map::kBitField2Offset));
6228 DecodeField<Map::ElementsKindBits>(scratch1); 6235 DecodeField<Map::ElementsKindBits>(scratch1);
6229 Branch(found, eq, scratch1, Operand(DICTIONARY_ELEMENTS)); 6236 Branch(found, eq, scratch1, Operand(DICTIONARY_ELEMENTS));
6230 ld(current, FieldMemOperand(current, Map::kPrototypeOffset)); 6237 ld(current, FieldMemOperand(current, Map::kPrototypeOffset));
6231 Branch(&loop_again, ne, current, Operand(factory->null_value())); 6238 Branch(&loop_again, ne, current, Operand(factory->null_value()));
6239
6240 bind(&end);
6232 } 6241 }
6233 6242
6234 6243
6235 bool AreAliased(Register reg1, 6244 bool AreAliased(Register reg1,
6236 Register reg2, 6245 Register reg2,
6237 Register reg3, 6246 Register reg3,
6238 Register reg4, 6247 Register reg4,
6239 Register reg5, 6248 Register reg5,
6240 Register reg6, 6249 Register reg6,
6241 Register reg7, 6250 Register reg7,
(...skipping 94 matching lines...) Expand 10 before | Expand all | Expand 10 after
6336 if (mag.shift > 0) sra(result, result, mag.shift); 6345 if (mag.shift > 0) sra(result, result, mag.shift);
6337 srl(at, dividend, 31); 6346 srl(at, dividend, 31);
6338 Addu(result, result, Operand(at)); 6347 Addu(result, result, Operand(at));
6339 } 6348 }
6340 6349
6341 6350
6342 } // namespace internal 6351 } // namespace internal
6343 } // namespace v8 6352 } // namespace v8
6344 6353
6345 #endif // V8_TARGET_ARCH_MIPS64 6354 #endif // V8_TARGET_ARCH_MIPS64
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698