OLD | NEW |
1 // Copyright 2006-2008 the V8 project authors. All rights reserved. | 1 // Copyright 2006-2008 the V8 project authors. All rights reserved. |
2 // Redistribution and use in source and binary forms, with or without | 2 // Redistribution and use in source and binary forms, with or without |
3 // modification, are permitted provided that the following conditions are | 3 // modification, are permitted provided that the following conditions are |
4 // met: | 4 // met: |
5 // | 5 // |
6 // * Redistributions of source code must retain the above copyright | 6 // * Redistributions of source code must retain the above copyright |
7 // notice, this list of conditions and the following disclaimer. | 7 // notice, this list of conditions and the following disclaimer. |
8 // * Redistributions in binary form must reproduce the above | 8 // * Redistributions in binary form must reproduce the above |
9 // copyright notice, this list of conditions and the following | 9 // copyright notice, this list of conditions and the following |
10 // disclaimer in the documentation and/or other materials provided | 10 // disclaimer in the documentation and/or other materials provided |
(...skipping 250 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
261 } | 261 } |
262 | 262 |
263 | 263 |
264 static void CopyElements(AssertNoAllocation* no_gc, | 264 static void CopyElements(AssertNoAllocation* no_gc, |
265 FixedArray* dst, | 265 FixedArray* dst, |
266 int dst_index, | 266 int dst_index, |
267 FixedArray* src, | 267 FixedArray* src, |
268 int src_index, | 268 int src_index, |
269 int len) { | 269 int len) { |
270 ASSERT(dst != src); // Use MoveElements instead. | 270 ASSERT(dst != src); // Use MoveElements instead. |
271 memcpy(dst->data_start() + dst_index, | 271 CopyWords(dst->data_start() + dst_index, |
272 src->data_start() + src_index, | 272 src->data_start() + src_index, |
273 len * kPointerSize); | 273 len); |
274 WriteBarrierMode mode = dst->GetWriteBarrierMode(*no_gc); | 274 WriteBarrierMode mode = dst->GetWriteBarrierMode(*no_gc); |
275 if (mode == UPDATE_WRITE_BARRIER) { | 275 if (mode == UPDATE_WRITE_BARRIER) { |
276 Heap::RecordWrites(dst->address(), dst->OffsetOfElementAt(dst_index), len); | 276 Heap::RecordWrites(dst->address(), dst->OffsetOfElementAt(dst_index), len); |
277 } | 277 } |
278 } | 278 } |
279 | 279 |
280 | 280 |
281 static void MoveElements(AssertNoAllocation* no_gc, | 281 static void MoveElements(AssertNoAllocation* no_gc, |
282 FixedArray* dst, | 282 FixedArray* dst, |
283 int dst_index, | 283 int dst_index, |
(...skipping 1186 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1470 if (entry->contains(pc)) { | 1470 if (entry->contains(pc)) { |
1471 return names_[i]; | 1471 return names_[i]; |
1472 } | 1472 } |
1473 } | 1473 } |
1474 } | 1474 } |
1475 return NULL; | 1475 return NULL; |
1476 } | 1476 } |
1477 | 1477 |
1478 | 1478 |
1479 } } // namespace v8::internal | 1479 } } // namespace v8::internal |
OLD | NEW |