| OLD | NEW | 
|     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 149 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|   160                                 Register scratch, |   160                                 Register scratch, | 
|   161                                 Condition cc, |   161                                 Condition cc, | 
|   162                                 Label* branch) { |   162                                 Label* branch) { | 
|   163   DCHECK(cc == eq || cc == ne); |   163   DCHECK(cc == eq || cc == ne); | 
|   164   And(scratch, object, Operand(ExternalReference::new_space_mask(isolate()))); |   164   And(scratch, object, Operand(ExternalReference::new_space_mask(isolate()))); | 
|   165   Branch(branch, cc, scratch, |   165   Branch(branch, cc, scratch, | 
|   166          Operand(ExternalReference::new_space_start(isolate()))); |   166          Operand(ExternalReference::new_space_start(isolate()))); | 
|   167 } |   167 } | 
|   168  |   168  | 
|   169  |   169  | 
 |   170 // Clobbers object, dst, value, and ra, if (ra_status == kRAHasBeenSaved) | 
 |   171 // The register 'object' contains a heap object pointer.  The heap object | 
 |   172 // tag is shifted away. | 
|   170 void MacroAssembler::RecordWriteField( |   173 void MacroAssembler::RecordWriteField( | 
|   171     Register object, |   174     Register object, | 
|   172     int offset, |   175     int offset, | 
|   173     Register value, |   176     Register value, | 
|   174     Register dst, |   177     Register dst, | 
|   175     RAStatus ra_status, |   178     RAStatus ra_status, | 
|   176     SaveFPRegsMode save_fp, |   179     SaveFPRegsMode save_fp, | 
|   177     RememberedSetAction remembered_set_action, |   180     RememberedSetAction remembered_set_action, | 
|   178     SmiCheck smi_check, |   181     SmiCheck smi_check, | 
|   179     PointersToHereCheck pointers_to_here_check_for_value) { |   182     PointersToHereCheck pointers_to_here_check_for_value) { | 
| (...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|   213  |   216  | 
|   214   // Clobber clobbered input registers when running with the debug-code flag |   217   // Clobber clobbered input registers when running with the debug-code flag | 
|   215   // turned on to provoke errors. |   218   // turned on to provoke errors. | 
|   216   if (emit_debug_code()) { |   219   if (emit_debug_code()) { | 
|   217     li(value, Operand(bit_cast<int64_t>(kZapValue + 4))); |   220     li(value, Operand(bit_cast<int64_t>(kZapValue + 4))); | 
|   218     li(dst, Operand(bit_cast<int64_t>(kZapValue + 8))); |   221     li(dst, Operand(bit_cast<int64_t>(kZapValue + 8))); | 
|   219   } |   222   } | 
|   220 } |   223 } | 
|   221  |   224  | 
|   222  |   225  | 
|   223 // Will clobber 4 registers: object, map, dst, ip.  The |   226 // Clobbers object, dst, map, and ra, if (ra_status == kRAHasBeenSaved) | 
|   224 // register 'object' contains a heap object pointer. |  | 
|   225 void MacroAssembler::RecordWriteForMap(Register object, |   227 void MacroAssembler::RecordWriteForMap(Register object, | 
|   226                                        Register map, |   228                                        Register map, | 
|   227                                        Register dst, |   229                                        Register dst, | 
|   228                                        RAStatus ra_status, |   230                                        RAStatus ra_status, | 
|   229                                        SaveFPRegsMode fp_mode) { |   231                                        SaveFPRegsMode fp_mode) { | 
|   230   if (emit_debug_code()) { |   232   if (emit_debug_code()) { | 
|   231     DCHECK(!dst.is(at)); |   233     DCHECK(!dst.is(at)); | 
|   232     ld(dst, FieldMemOperand(map, HeapObject::kMapOffset)); |   234     ld(dst, FieldMemOperand(map, HeapObject::kMapOffset)); | 
|   233     Check(eq, |   235     Check(eq, | 
|   234           kWrongAddressOrValuePassedToRecordWrite, |   236           kWrongAddressOrValuePassedToRecordWrite, | 
| (...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|   288  |   290  | 
|   289   // Clobber clobbered registers when running with the debug-code flag |   291   // Clobber clobbered registers when running with the debug-code flag | 
|   290   // turned on to provoke errors. |   292   // turned on to provoke errors. | 
|   291   if (emit_debug_code()) { |   293   if (emit_debug_code()) { | 
|   292     li(dst, Operand(bit_cast<int64_t>(kZapValue + 12))); |   294     li(dst, Operand(bit_cast<int64_t>(kZapValue + 12))); | 
|   293     li(map, Operand(bit_cast<int64_t>(kZapValue + 16))); |   295     li(map, Operand(bit_cast<int64_t>(kZapValue + 16))); | 
|   294   } |   296   } | 
|   295 } |   297 } | 
|   296  |   298  | 
|   297  |   299  | 
|   298 // Will clobber 4 registers: object, address, scratch, ip.  The |   300 // Clobbers object, address, value, and ra, if (ra_status == kRAHasBeenSaved) | 
|   299 // register 'object' contains a heap object pointer.  The heap object |   301 // The register 'object' contains a heap object pointer.  The heap object | 
|   300 // tag is shifted away. |   302 // tag is shifted away. | 
|   301 void MacroAssembler::RecordWrite( |   303 void MacroAssembler::RecordWrite( | 
|   302     Register object, |   304     Register object, | 
|   303     Register address, |   305     Register address, | 
|   304     Register value, |   306     Register value, | 
|   305     RAStatus ra_status, |   307     RAStatus ra_status, | 
|   306     SaveFPRegsMode fp_mode, |   308     SaveFPRegsMode fp_mode, | 
|   307     RememberedSetAction remembered_set_action, |   309     RememberedSetAction remembered_set_action, | 
|   308     SmiCheck smi_check, |   310     SmiCheck smi_check, | 
|   309     PointersToHereCheck pointers_to_here_check_for_value) { |   311     PointersToHereCheck pointers_to_here_check_for_value) { | 
| (...skipping 6036 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|  6346   if (mag.shift > 0) sra(result, result, mag.shift); |  6348   if (mag.shift > 0) sra(result, result, mag.shift); | 
|  6347   srl(at, dividend, 31); |  6349   srl(at, dividend, 31); | 
|  6348   Addu(result, result, Operand(at)); |  6350   Addu(result, result, Operand(at)); | 
|  6349 } |  6351 } | 
|  6350  |  6352  | 
|  6351  |  6353  | 
|  6352 }  // namespace internal |  6354 }  // namespace internal | 
|  6353 }  // namespace v8 |  6355 }  // namespace v8 | 
|  6354  |  6356  | 
|  6355 #endif  // V8_TARGET_ARCH_MIPS64 |  6357 #endif  // V8_TARGET_ARCH_MIPS64 | 
| OLD | NEW |