deps: V8: cherry-pick 0188634 · nodejs/node@5b8434e (original) (raw)
`@@ -323,40 +323,10 @@
`
323
323
`#define WRITE_INT_FIELD(p, offset, value) \
`
324
324
` (*reinterpret_cast<int*>(FIELD_ADDR(p, offset)) = value)
`
325
325
``
326
``
`-
#define ACQUIRE_READ_INTPTR_FIELD(p, offset) \
`
327
``
`-
static_cast(base::Acquire_Load( \
`
328
``
`-
reinterpret_cast<const base::AtomicWord*>(FIELD_ADDR(p, offset))))
`
329
``
-
330
326
`#define ACQUIRE_READ_INT32_FIELD(p, offset) \
`
331
327
`static_cast(base::Acquire_Load( \
`
332
328
`reinterpret_cast<const base::Atomic32*>(FIELD_ADDR(p, offset))))
`
333
329
``
334
``
`-
#define RELAXED_READ_INTPTR_FIELD(p, offset) \
`
335
``
`-
static_cast(base::Relaxed_Load( \
`
336
``
`-
reinterpret_cast<const base::AtomicWord*>(FIELD_ADDR(p, offset))))
`
337
``
-
338
``
`-
#define READ_INTPTR_FIELD(p, offset) \
`
339
``
`-
(*reinterpret_cast<const intptr_t*>(FIELD_ADDR(p, offset)))
`
340
``
-
341
``
`-
#define RELEASE_WRITE_INTPTR_FIELD(p, offset, value) \
`
342
``
`-
base::Release_Store( \
`
343
``
`-
reinterpret_castbase::AtomicWord*(FIELD_ADDR(p, offset)), \
`
344
``
`-
static_castbase::AtomicWord(value));
`
345
``
-
346
``
`-
#define RELAXED_WRITE_INTPTR_FIELD(p, offset, value) \
`
347
``
`-
base::Relaxed_Store( \
`
348
``
`-
reinterpret_castbase::AtomicWord*(FIELD_ADDR(p, offset)), \
`
349
``
`-
static_castbase::AtomicWord(value));
`
350
``
-
351
``
`-
#define WRITE_INTPTR_FIELD(p, offset, value) \
`
352
``
`-
(*reinterpret_cast<intptr_t*>(FIELD_ADDR(p, offset)) = value)
`
353
``
-
354
``
`-
#define READ_UINTPTR_FIELD(p, offset) \
`
355
``
`-
(*reinterpret_cast<const uintptr_t*>(FIELD_ADDR(p, offset)))
`
356
``
-
357
``
`-
#define WRITE_UINTPTR_FIELD(p, offset, value) \
`
358
``
`-
(*reinterpret_cast<uintptr_t*>(FIELD_ADDR(p, offset)) = value)
`
359
``
-
360
330
`#define READ_UINT8_FIELD(p, offset) \
`
361
331
` (*reinterpret_cast<const uint8_t*>(FIELD_ADDR(p, offset)))
`
362
332
``
439
409
`#define WRITE_FLOAT_FIELD(p, offset, value) \
`
440
410
` (*reinterpret_cast<float*>(FIELD_ADDR(p, offset)) = value)
`
441
411
``
``
412
`+
// TODO(ishell, v8:8875): When pointer compression is enabled 8-byte size fields
`
``
413
`+
// (external pointers, doubles and BigInt data) are only kTaggedSize aligned so
`
``
414
`+
// we have to use unaligned pointer friendly way of accessing them in order to
`
``
415
`+
// avoid undefined behavior in C++ code.
`
``
416
`+
#ifdef V8_COMPRESS_POINTERS
`
``
417
+
``
418
`+
#define READ_INTPTR_FIELD(p, offset) \
`
``
419
`+
ReadUnalignedValue(FIELD_ADDR(p, offset))
`
``
420
+
``
421
`+
#define WRITE_INTPTR_FIELD(p, offset, value) \
`
``
422
`+
WriteUnalignedValue(FIELD_ADDR(p, offset), value)
`
``
423
+
``
424
`+
#define READ_UINTPTR_FIELD(p, offset) \
`
``
425
`+
ReadUnalignedValue(FIELD_ADDR(p, offset))
`
``
426
+
``
427
`+
#define WRITE_UINTPTR_FIELD(p, offset, value) \
`
``
428
`+
WriteUnalignedValue(FIELD_ADDR(p, offset), value)
`
``
429
+
``
430
`+
#define READ_UINT64_FIELD(p, offset) \
`
``
431
`+
ReadUnalignedValue(FIELD_ADDR(p, offset))
`
``
432
+
``
433
`+
#define WRITE_UINT64_FIELD(p, offset, value) \
`
``
434
`+
WriteUnalignedValue(FIELD_ADDR(p, offset), value)
`
``
435
+
``
436
`+
#else // V8_COMPRESS_POINTERS
`
``
437
+
``
438
`+
#define READ_INTPTR_FIELD(p, offset) \
`
``
439
`+
(*reinterpret_cast<const intptr_t*>(FIELD_ADDR(p, offset)))
`
``
440
+
``
441
`+
#define WRITE_INTPTR_FIELD(p, offset, value) \
`
``
442
`+
(*reinterpret_cast<intptr_t*>(FIELD_ADDR(p, offset)) = value)
`
``
443
+
``
444
`+
#define READ_UINTPTR_FIELD(p, offset) \
`
``
445
`+
(*reinterpret_cast<const uintptr_t*>(FIELD_ADDR(p, offset)))
`
``
446
+
``
447
`+
#define WRITE_UINTPTR_FIELD(p, offset, value) \
`
``
448
`+
(*reinterpret_cast<uintptr_t*>(FIELD_ADDR(p, offset)) = value)
`
``
449
+
442
450
`#define READ_UINT64_FIELD(p, offset) \
`
443
451
` (*reinterpret_cast<const uint64_t*>(FIELD_ADDR(p, offset)))
`
444
452
``
445
453
`#define WRITE_UINT64_FIELD(p, offset, value) \
`
446
454
` (*reinterpret_cast<uint64_t*>(FIELD_ADDR(p, offset)) = value)
`
447
455
``
448
``
`-
#define READ_INT64_FIELD(p, offset) \
`
449
``
`-
(*reinterpret_cast<const int64_t*>(FIELD_ADDR(p, offset)))
`
450
``
-
451
``
`-
#define WRITE_INT64_FIELD(p, offset, value) \
`
452
``
`-
(*reinterpret_cast<int64_t*>(FIELD_ADDR(p, offset)) = value)
`
``
456
`+
#endif // V8_COMPRESS_POINTERS
`
453
457
``
454
458
`#define READ_BYTE_FIELD(p, offset) \
`
455
459
` (*reinterpret_cast<const byte*>(FIELD_ADDR(p, offset)))
`