[vm, compiler] Update TSAN instrumentation.
TEST=tsan
Cq-Include-Trybots: luci.dart.try:vm-tsan-linux-release-x64-try,vm-tsan-linux-release-arm64-try,iso-stress-linux-arm64-try,iso-stress-linux-x64-try
Change-Id: I0c49b501c53f9a5117bb14800e342e6fe9b4eba6
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/442730
Reviewed-by: Alexander Aprelev <aam@google.com>
Commit-Queue: Ryan Macnak <rmacnak@google.com>
diff --git a/runtime/platform/thread_sanitizer.h b/runtime/platform/thread_sanitizer.h
index 465f9a3..27710b3 100644
--- a/runtime/platform/thread_sanitizer.h
+++ b/runtime/platform/thread_sanitizer.h
@@ -17,8 +17,14 @@
#if defined(USING_THREAD_SANITIZER)
#define NO_SANITIZE_THREAD __attribute__((no_sanitize("thread")))
-extern "C" void __tsan_acquire(void* addr);
-extern "C" void __tsan_release(void* addr);
+extern "C" void __tsan_atomic32_load(uint32_t* addr, int order);
+extern "C" void __tsan_atomic32_store(uint32_t* addr,
+ uint32_t value,
+ int order);
+extern "C" void __tsan_atomic64_load(uint64_t* addr, int order);
+extern "C" void __tsan_atomic64_store(uint64_t* addr,
+ uint64_t value,
+ int order);
#else
#define NO_SANITIZE_THREAD
#endif
diff --git a/runtime/vm/compiler/assembler/assembler_arm64.cc b/runtime/vm/compiler/assembler/assembler_arm64.cc
index b15d28b..6e81d63 100644
--- a/runtime/vm/compiler/assembler/assembler_arm64.cc
+++ b/runtime/vm/compiler/assembler/assembler_arm64.cc
@@ -286,16 +286,69 @@
ASSERT(((offset + buffer_.GetPosition()) & (alignment - 1)) == 0);
}
-void Assembler::TsanLoadAcquire(Register addr) {
- LeafRuntimeScope rt(this, /*frame_size=*/0, /*preserve_registers=*/true);
+void Assembler::TsanLoadAcquire(Register dst, Register addr, OperandSize size) {
+ RegisterSet registers(kDartVolatileCpuRegs & ~(1 << dst),
+ kAllFpuRegistersList);
+
+ EnterFrame(0);
+ PushRegisters(registers);
+ ReserveAlignedFrameSpace(0);
+
MoveRegister(R0, addr);
- rt.Call(kTsanLoadAcquireRuntimeEntry, /*argument_count=*/1);
+ LoadImmediate(R1, __ATOMIC_ACQUIRE);
+
+ mov(CSP, SP);
+ switch (size) {
+ case kEightBytes:
+ ldr(TMP, compiler::Address(
+ THR, kTsanAtomic64LoadRuntimeEntry.OffsetFromThread()));
+ break;
+ case kUnsignedFourBytes:
+ ldr(TMP, compiler::Address(
+ THR, kTsanAtomic32LoadRuntimeEntry.OffsetFromThread()));
+ break;
+ default:
+ UNIMPLEMENTED();
+ }
+ str(TMP, compiler::Address(THR, target::Thread::vm_tag_offset()));
+ blr(TMP);
+ LoadImmediate(TMP, VMTag::kDartTagId);
+ str(TMP, compiler::Address(THR, target::Thread::vm_tag_offset()));
+ SetupCSPFromThread(THR);
+
+ MoveRegister(dst, R0);
+
+ AddImmediate(SP, FP, -registers.SpillSize());
+ PopRegisters(registers);
+ LeaveFrame();
}
-void Assembler::TsanStoreRelease(Register addr) {
+void Assembler::TsanStoreRelease(Register src,
+ Register addr,
+ OperandSize size) {
LeafRuntimeScope rt(this, /*frame_size=*/0, /*preserve_registers=*/true);
- MoveRegister(R0, addr);
- rt.Call(kTsanStoreReleaseRuntimeEntry, /*argument_count=*/1);
+
+ if (src == R0) {
+ MoveRegister(R1, src);
+ MoveRegister(R0, addr);
+ } else {
+ MoveRegister(R0, addr);
+ MoveRegister(R1, src);
+ }
+ LoadImmediate(R2, __ATOMIC_RELEASE);
+
+ switch (size) {
+ case kEightBytes:
+ rt.Call(kTsanAtomic64StoreRuntimeEntry, /*argument_count=*/3);
+ break;
+ case kFourBytes:
+ case kUnsignedFourBytes:
+ rt.Call(kTsanAtomic32StoreRuntimeEntry, /*argument_count=*/3);
+ break;
+ default:
+ UNIMPLEMENTED();
+ break;
+ }
}
static int CountLeadingZeros(uint64_t value, int width) {
@@ -1779,10 +1832,7 @@
// SP might have been modified to reserve space for arguments
// and ensure proper alignment of the stack frame.
// We need to restore it before restoring registers.
- const intptr_t kPushedRegistersSize =
- kRuntimeCallSavedRegisters.CpuRegisterCount() * target::kWordSize +
- kRuntimeCallSavedRegisters.FpuRegisterCount() * kFpuRegisterSize;
- __ AddImmediate(SP, FP, -kPushedRegistersSize);
+ __ AddImmediate(SP, FP, -kRuntimeCallSavedRegisters.SpillSize());
__ PopRegisters(kRuntimeCallSavedRegisters);
}
diff --git a/runtime/vm/compiler/assembler/assembler_arm64.h b/runtime/vm/compiler/assembler/assembler_arm64.h
index 338eca0..e381bc0 100644
--- a/runtime/vm/compiler/assembler/assembler_arm64.h
+++ b/runtime/vm/compiler/assembler/assembler_arm64.h
@@ -502,8 +502,8 @@
StoreToOffset(src, base, offset, kEightBytes);
}
- void TsanLoadAcquire(Register addr);
- void TsanStoreRelease(Register addr);
+ void TsanLoadAcquire(Register dst, Register addr, OperandSize size);
+ void TsanStoreRelease(Register src, Register addr, OperandSize size);
void LoadAcquire(Register dst,
const Address& address,
@@ -515,9 +515,10 @@
AddImmediate(TMP2, src, address.offset());
src = TMP2;
}
- ldar(dst, src, size);
if (FLAG_target_thread_sanitizer) {
- TsanLoadAcquire(src);
+ TsanLoadAcquire(dst, src, size);
+ } else {
+ ldar(dst, src, size);
}
}
@@ -538,9 +539,10 @@
AddImmediate(TMP2, dst, address.offset());
dst = TMP2;
}
- stlr(src, dst, size);
if (FLAG_target_thread_sanitizer) {
- TsanStoreRelease(dst);
+ TsanStoreRelease(src, dst, size);
+ } else {
+ stlr(src, dst, size);
}
}
diff --git a/runtime/vm/compiler/assembler/assembler_riscv.cc b/runtime/vm/compiler/assembler/assembler_riscv.cc
index 2ee2902..b416a34 100644
--- a/runtime/vm/compiler/assembler/assembler_riscv.cc
+++ b/runtime/vm/compiler/assembler/assembler_riscv.cc
@@ -2880,8 +2880,7 @@
// The order in which the registers are pushed must match the order
// in which the registers are encoded in the safepoint's stack map.
- intptr_t size = (regs.CpuRegisterCount() * target::kWordSize) +
- (regs.FpuRegisterCount() * kFpuRegisterSize);
+ intptr_t size = regs.SpillSize();
if (size == 0) {
return; // Skip no-op SP update.
}
@@ -2909,8 +2908,7 @@
// The order in which the registers are pushed must match the order
// in which the registers are encoded in the safepoint's stack map.
- intptr_t size = (regs.CpuRegisterCount() * target::kWordSize) +
- (regs.FpuRegisterCount() * kFpuRegisterSize);
+ intptr_t size = regs.SpillSize();
if (size == 0) {
return; // Skip no-op SP update.
}
@@ -3084,15 +3082,92 @@
jr(TMP2);
}
-void Assembler::TsanLoadAcquire(Register addr) {
- LeafRuntimeScope rt(this, /*frame_size=*/0, /*preserve_registers=*/true);
- MoveRegister(A0, addr);
- rt.Call(kTsanLoadAcquireRuntimeEntry, /*argument_count=*/1);
+void Assembler::TsanLoadAcquire(Register dst,
+ const Address& addr,
+ OperandSize size) {
+ ASSERT(addr.base() != SP);
+ ASSERT(addr.base() != FP);
+ ASSERT(dst != SP);
+ ASSERT(dst != FP);
+
+ RegisterSet registers(kDartVolatileCpuRegs & ~(1 << dst),
+ kAbiVolatileFpuRegs);
+
+ subi(SP, SP, 4 * target::kWordSize);
+ sx(RA, Address(SP, 3 * target::kWordSize));
+ sx(FP, Address(SP, 2 * target::kWordSize));
+ sx(CODE_REG, Address(SP, 1 * target::kWordSize));
+ sx(PP, Address(SP, 0 * target::kWordSize));
+ addi(FP, SP, 4 * target::kWordSize);
+
+ PushRegisters(registers);
+ ReserveAlignedFrameSpace(0);
+
+ AddImmediate(A0, addr.base(), addr.offset());
+ LoadImmediate(A1, __ATOMIC_ACQUIRE);
+
+ switch (size) {
+ case kEightBytes:
+ lx(TMP2, compiler::Address(
+ THR, kTsanAtomic64LoadRuntimeEntry.OffsetFromThread()));
+ break;
+ case kUnsignedFourBytes:
+ lx(TMP2, compiler::Address(
+ THR, kTsanAtomic32LoadRuntimeEntry.OffsetFromThread()));
+ break;
+ default:
+ UNIMPLEMENTED();
+ break;
+ }
+ sx(TMP2, compiler::Address(THR, target::Thread::vm_tag_offset()));
+ jalr(TMP2);
+ LoadImmediate(TMP2, VMTag::kDartTagId);
+ sx(TMP2, compiler::Address(THR, target::Thread::vm_tag_offset()));
+
+ MoveRegister(dst, A0);
+
+ subi(SP, FP, registers.SpillSize() + 4 * target::kWordSize);
+ PopRegisters(registers);
+
+ subi(SP, FP, 4 * target::kWordSize);
+ lx(PP, Address(SP, 0 * target::kWordSize));
+ lx(CODE_REG, Address(SP, 1 * target::kWordSize));
+ lx(FP, Address(SP, 2 * target::kWordSize));
+ lx(RA, Address(SP, 3 * target::kWordSize));
+ addi(SP, SP, 4 * target::kWordSize);
}
-void Assembler::TsanStoreRelease(Register addr) {
+
+void Assembler::TsanStoreRelease(Register src,
+ const Address& addr,
+ OperandSize size) {
+ ASSERT(addr.base() != SP);
+ ASSERT(addr.base() != FP);
+ ASSERT(src != SP);
+ ASSERT(src != FP);
+
LeafRuntimeScope rt(this, /*frame_size=*/0, /*preserve_registers=*/true);
- MoveRegister(A0, addr);
- rt.Call(kTsanStoreReleaseRuntimeEntry, /*argument_count=*/1);
+
+ if (src == A0) {
+ MoveRegister(A1, src);
+ AddImmediate(A0, addr.base(), addr.offset());
+ } else {
+ AddImmediate(A0, addr.base(), addr.offset());
+ MoveRegister(A1, src);
+ }
+ LoadImmediate(A2, __ATOMIC_RELEASE);
+
+ switch (size) {
+ case kEightBytes:
+ rt.Call(kTsanAtomic64StoreRuntimeEntry, /*argument_count=*/3);
+ break;
+ case kFourBytes:
+ case kUnsignedFourBytes:
+ rt.Call(kTsanAtomic32StoreRuntimeEntry, /*argument_count=*/3);
+ break;
+ default:
+ UNIMPLEMENTED();
+ break;
+ }
}
void Assembler::LoadAcquire(Register dst,
@@ -3100,6 +3175,11 @@
OperandSize size) {
ASSERT(dst != address.base());
+ if (FLAG_target_thread_sanitizer) {
+ TsanLoadAcquire(dst, address, size);
+ return;
+ }
+
if (Supports(RV_Zalasr)) {
Address addr = PrepareAtomicOffset(address.base(), address.offset());
switch (size) {
@@ -3124,20 +3204,16 @@
Load(dst, address, size);
fence(HartEffects::kRead, HartEffects::kMemory);
}
-
- if (FLAG_target_thread_sanitizer) {
- if (address.offset() == 0) {
- TsanLoadAcquire(address.base());
- } else {
- AddImmediate(TMP2, address.base(), address.offset());
- TsanLoadAcquire(TMP2);
- }
- }
}
void Assembler::StoreRelease(Register src,
const Address& address,
OperandSize size) {
+ if (FLAG_target_thread_sanitizer) {
+ TsanStoreRelease(src, address, size);
+ return;
+ }
+
if (Supports(RV_Zalasr)) {
Address addr = PrepareAtomicOffset(address.base(), address.offset());
switch (size) {
@@ -4781,13 +4857,8 @@
LeafRuntimeScope::~LeafRuntimeScope() {
if (preserve_registers_) {
- const intptr_t kSavedRegistersSize =
- kRuntimeCallSavedRegisters.CpuRegisterCount() * target::kWordSize +
- kRuntimeCallSavedRegisters.FpuRegisterCount() * kFpuRegisterSize +
- 4 * target::kWordSize;
-
- __ subi(SP, FP, kSavedRegistersSize);
-
+ __ subi(SP, FP,
+ kRuntimeCallSavedRegisters.SpillSize() + 4 * target::kWordSize);
__ PopRegisters(kRuntimeCallSavedRegisters);
}
diff --git a/runtime/vm/compiler/assembler/assembler_riscv.h b/runtime/vm/compiler/assembler/assembler_riscv.h
index 8c8c010..a4a56ac 100644
--- a/runtime/vm/compiler/assembler/assembler_riscv.h
+++ b/runtime/vm/compiler/assembler/assembler_riscv.h
@@ -1007,8 +1007,8 @@
StoreToOffset(src, base, offset, kWordBytes);
}
- void TsanLoadAcquire(Register addr);
- void TsanStoreRelease(Register addr);
+ void TsanLoadAcquire(Register dst, const Address& address, OperandSize size);
+ void TsanStoreRelease(Register src, const Address& address, OperandSize size);
void LoadAcquire(Register dst,
const Address& address,
diff --git a/runtime/vm/compiler/assembler/assembler_x64.cc b/runtime/vm/compiler/assembler/assembler_x64.cc
index b6b7ca7..98d713e 100644
--- a/runtime/vm/compiler/assembler/assembler_x64.cc
+++ b/runtime/vm/compiler/assembler/assembler_x64.cc
@@ -2106,15 +2106,7 @@
// RSP might have been modified to reserve space for arguments
// and ensure proper alignment of the stack frame.
// We need to restore it before restoring registers.
- const intptr_t kPushedCpuRegistersCount =
- RegisterSet::RegisterCount(CallingConventions::kVolatileCpuRegisters);
- const intptr_t kPushedXmmRegistersCount =
- RegisterSet::RegisterCount(CallingConventions::kVolatileXmmRegisters);
- const intptr_t kPushedRegistersSize =
- kPushedCpuRegistersCount * target::kWordSize +
- kPushedXmmRegistersCount * kFpuRegisterSize;
-
- __ leaq(RSP, Address(RBP, -kPushedRegistersSize));
+ __ leaq(RSP, Address(RBP, -kVolatileRegisterSet.SpillSize()));
// TODO(vegorov): avoid saving FpuTMP, it is used only as scratch.
__ PopRegisters(kVolatileRegisterSet);
@@ -2128,16 +2120,80 @@
__ LeaveFrame();
}
-void Assembler::TsanLoadAcquire(Address addr) {
- LeafRuntimeScope rt(this, /*frame_size=*/0, /*preserve_registers=*/true);
+void Assembler::TsanLoadAcquire(Register dst, Address addr, OperandSize size) {
+ ASSERT(addr.base() != RSP);
+ ASSERT(addr.base() != RBP);
+ ASSERT(dst != RSP);
+ ASSERT(dst != RBP);
+
+ RegisterSet registers(CallingConventions::kVolatileCpuRegisters & ~(1 << dst),
+ CallingConventions::kVolatileXmmRegisters);
+
+ EnterFrame(0);
+ PushRegisters(registers);
+ ReserveAlignedFrameSpace(0);
+
leaq(CallingConventions::kArg1Reg, addr);
- rt.Call(kTsanLoadAcquireRuntimeEntry, /*argument_count=*/1);
+ LoadImmediate(CallingConventions::kArg2Reg, __ATOMIC_ACQUIRE);
+
+ switch (size) {
+ case kEightBytes:
+ movq(RAX, compiler::Address(
+ THR, kTsanAtomic64LoadRuntimeEntry.OffsetFromThread()));
+ break;
+ case kUnsignedFourBytes:
+ movq(RAX, compiler::Address(
+ THR, kTsanAtomic32LoadRuntimeEntry.OffsetFromThread()));
+ break;
+ default:
+ UNIMPLEMENTED();
+ break;
+ }
+ movq(compiler::Assembler::VMTagAddress(), RAX);
+ CallCFunction(RAX);
+ movq(compiler::Assembler::VMTagAddress(),
+ compiler::Immediate(VMTag::kDartTagId));
+
+ MoveRegister(dst, RAX);
+
+ // RSP might have been modified to reserve space for arguments
+ // and ensure proper alignment of the stack frame.
+ // We need to restore it before restoring registers.
+ leaq(RSP, Address(RBP, -registers.SpillSize()));
+
+ PopRegisters(registers);
+ LeaveFrame();
}
-void Assembler::TsanStoreRelease(Address addr) {
+void Assembler::TsanStoreRelease(Register src, Address addr, OperandSize size) {
+ ASSERT(addr.base() != RSP);
+ ASSERT(addr.base() != RBP);
+ ASSERT(src != RSP);
+ ASSERT(src != RBP);
+
LeafRuntimeScope rt(this, /*frame_size=*/0, /*preserve_registers=*/true);
- leaq(CallingConventions::kArg1Reg, addr);
- rt.Call(kTsanStoreReleaseRuntimeEntry, /*argument_count=*/1);
+
+ if (CallingConventions::kArg1Reg == src) {
+ MoveRegister(CallingConventions::kArg2Reg, src);
+ leaq(CallingConventions::kArg1Reg, addr);
+ } else {
+ leaq(CallingConventions::kArg1Reg, addr);
+ MoveRegister(CallingConventions::kArg2Reg, src);
+ }
+ LoadImmediate(CallingConventions::kArg3Reg, __ATOMIC_RELEASE);
+
+ switch (size) {
+ case kEightBytes:
+ rt.Call(kTsanAtomic64StoreRuntimeEntry, /*argument_count=*/3);
+ break;
+ case kFourBytes:
+ case kUnsignedFourBytes:
+ rt.Call(kTsanAtomic32StoreRuntimeEntry, /*argument_count=*/3);
+ break;
+ default:
+ UNIMPLEMENTED();
+ break;
+ }
}
void Assembler::RestoreCodePointer() {
diff --git a/runtime/vm/compiler/assembler/assembler_x64.h b/runtime/vm/compiler/assembler/assembler_x64.h
index d9ff09a..da85c23 100644
--- a/runtime/vm/compiler/assembler/assembler_x64.h
+++ b/runtime/vm/compiler/assembler/assembler_x64.h
@@ -1159,37 +1159,35 @@
}
}
- void TsanLoadAcquire(Address addr);
- void TsanStoreRelease(Address addr);
+ void TsanLoadAcquire(Register dst, Address addr, OperandSize size);
+ void TsanStoreRelease(Register src, Address addr, OperandSize size);
void LoadAcquire(Register dst,
const Address& address,
OperandSize size = kEightBytes) override {
- // On intel loads have load-acquire behavior (i.e. loads are not re-ordered
- // with other loads).
- Load(dst, address, size);
if (FLAG_target_thread_sanitizer) {
- TsanLoadAcquire(address);
+ TsanLoadAcquire(dst, address, size);
+ } else {
+ // On intel loads have load-acquire behavior (i.e. loads are not
+ // re-ordered with other loads).
+ Load(dst, address, size);
}
}
#if defined(DART_COMPRESSED_POINTERS)
void LoadAcquireCompressed(Register dst, const Address& address) override {
- // On intel loads have load-acquire behavior (i.e. loads are not re-ordered
- // with other loads).
- LoadCompressed(dst, address);
- if (FLAG_target_thread_sanitizer) {
- TsanLoadAcquire(address);
- }
+ LoadAcquire(dst, address, kUnsignedFourBytes);
+ addq(dst, Address(THR, target::Thread::heap_base_offset()));
}
#endif
void StoreRelease(Register src,
const Address& address,
OperandSize size = kWordBytes) override {
- // On intel stores have store-release behavior (i.e. stores are not
- // re-ordered with other stores).
- Store(src, address, size);
if (FLAG_target_thread_sanitizer) {
- TsanStoreRelease(address);
+ TsanStoreRelease(src, address, size);
+ } else {
+ // On intel stores have store-release behavior (i.e. stores are not
+ // re-ordered with other stores).
+ Store(src, address, size);
}
}
diff --git a/runtime/vm/compiler/assembler/assembler_x64_test.cc b/runtime/vm/compiler/assembler/assembler_x64_test.cc
index eba0a6a..63dcbab 100644
--- a/runtime/vm/compiler/assembler/assembler_x64_test.cc
+++ b/runtime/vm/compiler/assembler/assembler_x64_test.cc
@@ -6236,65 +6236,9 @@
__ pushq(RCX);
__ xorq(RCX, RCX);
__ pushq(RCX);
-
- for (intptr_t i = 0; i < kNumberOfXmmRegisters; ++i) {
- XmmRegister xmm_reg = static_cast<XmmRegister>(i);
- if ((CallingConventions::kVolatileXmmRegisters & (1 << xmm_reg)) != 0) {
- __ movq(RCX, Immediate(bit_cast<int32_t, float>(12.34f + i)));
- __ movd(xmm_reg, RCX);
- }
- }
-
- for (intptr_t i = 0; i < kNumberOfCpuRegisters; ++i) {
- Register reg = static_cast<Register>(i);
- if (reg == CallingConventions::kArg3Reg) {
- continue;
- }
- if ((CallingConventions::kVolatileCpuRegisters & (1 << reg)) != 0) {
- __ movq(reg, Immediate(0xAABBCCDD + i));
- }
- }
- __ StoreReleaseToOffset(CallingConventions::kArg3Reg, RSP, 0);
-
- __ pushq(TMP);
-
- for (intptr_t i = 0; i < kNumberOfCpuRegisters; ++i) {
- Register reg = static_cast<Register>(i);
- if (reg == CallingConventions::kArg3Reg) {
- continue;
- }
- if ((CallingConventions::kVolatileCpuRegisters & (1 << reg)) != 0) {
- Label ok;
- if (reg == TMP) {
- __ popq(TMP);
- // Use kArg3Reg to validate TMP because TMP is
- // needed for 64-bit cmpq below.
- __ pushq(CallingConventions::kArg3Reg);
- __ movq(CallingConventions::kArg3Reg, TMP);
- reg = CallingConventions::kArg3Reg;
- }
- __ cmpq(reg, Immediate(0xAABBCCDD + i));
- __ j(EQUAL, &ok);
- __ int3();
- __ Bind(&ok);
- if (reg == CallingConventions::kArg3Reg) {
- __ popq(CallingConventions::kArg3Reg);
- }
- }
- }
-
- for (intptr_t i = 0; i < kNumberOfXmmRegisters; ++i) {
- XmmRegister xmm_reg = static_cast<XmmRegister>(i);
- if ((CallingConventions::kVolatileXmmRegisters & (1 << xmm_reg)) != 0) {
- Label ok;
- __ movq(RCX, xmm_reg);
- __ cmpq(RCX, Immediate(bit_cast<int32_t, float>(12.34f + i)));
- __ j(EQUAL, &ok);
- __ int3();
- __ Bind(&ok);
- }
- }
- __ LoadAcquireFromOffset(CallingConventions::kReturnReg, RSP, 0);
+ __ movq(RCX, RSP);
+ __ StoreReleaseToOffset(CallingConventions::kArg3Reg, RCX, 0);
+ __ LoadAcquireFromOffset(CallingConventions::kReturnReg, RCX, 0);
__ popq(RCX);
__ popq(RCX);
__ popq(THR);
@@ -6315,8 +6259,9 @@
__ xorq(RCX, RCX);
__ pushq(RCX);
__ subq(RSP, Immediate(1024));
- __ StoreReleaseToOffset(CallingConventions::kArg3Reg, RSP, 1024);
- __ LoadAcquireFromOffset(CallingConventions::kReturnReg, RSP, 1024);
+ __ movq(RCX, RSP);
+ __ StoreReleaseToOffset(CallingConventions::kArg3Reg, RCX, 1024);
+ __ LoadAcquireFromOffset(CallingConventions::kReturnReg, RCX, 1024);
__ addq(RSP, Immediate(1024));
__ popq(RCX);
__ popq(RCX);
@@ -6335,8 +6280,9 @@
"xorq rcx,rcx\n"
"push rcx\n"
"subq rsp,0x400\n"
- "movq [rsp+0x400],rdx\n"
- "movq rax,[rsp+0x400]\n"
+ "movq rcx,rsp\n"
+ "movq [rcx+0x400],rdx\n"
+ "movq rax,[rcx+0x400]\n"
"addq rsp,0x400\n"
"pop rcx\n"
"pop rcx\n"
diff --git a/runtime/vm/compiler/backend/il_riscv.cc b/runtime/vm/compiler/backend/il_riscv.cc
index 0540417..5b26bae 100644
--- a/runtime/vm/compiler/backend/il_riscv.cc
+++ b/runtime/vm/compiler/backend/il_riscv.cc
@@ -6095,9 +6095,8 @@
// The unboxed int64 argument is passed through a dedicated slot in Thread.
// TODO(dartbug.com/33549): Clean this up when unboxed values
// could be passed as arguments.
- __ sx(right,
- compiler::Address(
- THR, compiler::target::Thread::unboxed_runtime_arg_offset()));
+ __ StoreToOffset(right, THR,
+ compiler::target::Thread::unboxed_runtime_arg_offset());
#endif
}
};
diff --git a/runtime/vm/compiler/backend/locations.h b/runtime/vm/compiler/backend/locations.h
index 1d38e88..a00fb1a 100644
--- a/runtime/vm/compiler/backend/locations.h
+++ b/runtime/vm/compiler/backend/locations.h
@@ -820,6 +820,10 @@
intptr_t CpuRegisterCount() const { return RegisterCount(cpu_registers()); }
intptr_t FpuRegisterCount() const { return RegisterCount(fpu_registers()); }
+ intptr_t SpillSize() const {
+ return CpuRegisterCount() * compiler::target::kWordSize +
+ FpuRegisterCount() * kFpuRegisterSize;
+ }
bool IsEmpty() const {
return CpuRegisterCount() == 0 && FpuRegisterCount() == 0;
diff --git a/runtime/vm/compiler/runtime_offsets_extracted.h b/runtime/vm/compiler/runtime_offsets_extracted.h
index 644b69a..ec36218 100644
--- a/runtime/vm/compiler/runtime_offsets_extracted.h
+++ b/runtime/vm/compiler/runtime_offsets_extracted.h
@@ -344,7 +344,7 @@
static constexpr dart::compiler::target::word
Thread_allocate_object_slow_entry_point_offset = 0x10c;
static constexpr dart::compiler::target::word Thread_api_top_scope_offset =
- 0x3c8;
+ 0x3d0;
static constexpr dart::compiler::target::word
Thread_async_exception_handler_stub_offset = 0xa4;
static constexpr dart::compiler::target::word
@@ -357,13 +357,13 @@
Thread_call_to_runtime_entry_point_offset = 0xf8;
static constexpr dart::compiler::target::word
Thread_call_to_runtime_stub_offset = 0x60;
-static constexpr dart::compiler::target::word Thread_dart_stream_offset = 0x400;
+static constexpr dart::compiler::target::word Thread_dart_stream_offset = 0x408;
static constexpr dart::compiler::target::word
Thread_dispatch_table_array_offset = 0x2c;
static constexpr dart::compiler::target::word
- Thread_double_truncate_round_supported_offset = 0x3cc;
+ Thread_double_truncate_round_supported_offset = 0x3d4;
static constexpr dart::compiler::target::word
- Thread_service_extension_stream_offset = 0x404;
+ Thread_service_extension_stream_offset = 0x40c;
static constexpr dart::compiler::target::word Thread_optimize_entry_offset =
0x120;
static constexpr dart::compiler::target::word Thread_optimize_stub_offset =
@@ -479,7 +479,7 @@
0x330;
static constexpr dart::compiler::target::word
Thread_shared_field_table_values_offset = 0x34;
-static constexpr dart::compiler::target::word Thread_single_step_offset = 0x3f4;
+static constexpr dart::compiler::target::word Thread_single_step_offset = 0x3fc;
static constexpr dart::compiler::target::word
Thread_slow_type_test_stub_offset = 0xdc;
static constexpr dart::compiler::target::word
@@ -526,18 +526,18 @@
static constexpr dart::compiler::target::word Thread_top_offset = 0x24;
static constexpr dart::compiler::target::word Thread_top_resource_offset = 0x10;
static constexpr dart::compiler::target::word
- Thread_unboxed_runtime_arg_offset = 0x3d0;
+ Thread_unboxed_runtime_arg_offset = 0x3d8;
static constexpr dart::compiler::target::word Thread_vm_tag_offset = 0x314;
static constexpr dart::compiler::target::word
Thread_write_barrier_entry_point_offset = 0xf0;
static constexpr dart::compiler::target::word Thread_write_barrier_mask_offset =
0x20;
static constexpr dart::compiler::target::word Thread_next_task_id_offset =
- 0x3e0;
-static constexpr dart::compiler::target::word Thread_random_offset = 0x3e8;
+ 0x3e8;
+static constexpr dart::compiler::target::word Thread_random_offset = 0x3f0;
static constexpr dart::compiler::target::word
Thread_jump_to_frame_entry_point_offset = 0x12c;
-static constexpr dart::compiler::target::word Thread_tsan_utils_offset = 0x3f0;
+static constexpr dart::compiler::target::word Thread_tsan_utils_offset = 0x3f8;
static constexpr dart::compiler::target::word TsanUtils_setjmp_function_offset =
0x0;
static constexpr dart::compiler::target::word TsanUtils_setjmp_buffer_offset =
@@ -1062,7 +1062,7 @@
static constexpr dart::compiler::target::word
Thread_allocate_object_slow_entry_point_offset = 0x218;
static constexpr dart::compiler::target::word Thread_api_top_scope_offset =
- 0x7a8;
+ 0x7b8;
static constexpr dart::compiler::target::word
Thread_async_exception_handler_stub_offset = 0x148;
static constexpr dart::compiler::target::word
@@ -1075,13 +1075,13 @@
Thread_call_to_runtime_entry_point_offset = 0x1f0;
static constexpr dart::compiler::target::word
Thread_call_to_runtime_stub_offset = 0xc0;
-static constexpr dart::compiler::target::word Thread_dart_stream_offset = 0x7f8;
+static constexpr dart::compiler::target::word Thread_dart_stream_offset = 0x808;
static constexpr dart::compiler::target::word
Thread_dispatch_table_array_offset = 0x58;
static constexpr dart::compiler::target::word
- Thread_double_truncate_round_supported_offset = 0x7b0;
+ Thread_double_truncate_round_supported_offset = 0x7c0;
static constexpr dart::compiler::target::word
- Thread_service_extension_stream_offset = 0x800;
+ Thread_service_extension_stream_offset = 0x810;
static constexpr dart::compiler::target::word Thread_optimize_entry_offset =
0x240;
static constexpr dart::compiler::target::word Thread_optimize_stub_offset =
@@ -1197,7 +1197,7 @@
0x678;
static constexpr dart::compiler::target::word
Thread_shared_field_table_values_offset = 0x68;
-static constexpr dart::compiler::target::word Thread_single_step_offset = 0x7e0;
+static constexpr dart::compiler::target::word Thread_single_step_offset = 0x7f0;
static constexpr dart::compiler::target::word
Thread_slow_type_test_stub_offset = 0x1b8;
static constexpr dart::compiler::target::word
@@ -1244,18 +1244,18 @@
static constexpr dart::compiler::target::word Thread_top_offset = 0x48;
static constexpr dart::compiler::target::word Thread_top_resource_offset = 0x20;
static constexpr dart::compiler::target::word
- Thread_unboxed_runtime_arg_offset = 0x7b8;
+ Thread_unboxed_runtime_arg_offset = 0x7c8;
static constexpr dart::compiler::target::word Thread_vm_tag_offset = 0x640;
static constexpr dart::compiler::target::word
Thread_write_barrier_entry_point_offset = 0x1e0;
static constexpr dart::compiler::target::word Thread_write_barrier_mask_offset =
0x40;
static constexpr dart::compiler::target::word Thread_next_task_id_offset =
- 0x7c8;
-static constexpr dart::compiler::target::word Thread_random_offset = 0x7d0;
+ 0x7d8;
+static constexpr dart::compiler::target::word Thread_random_offset = 0x7e0;
static constexpr dart::compiler::target::word
Thread_jump_to_frame_entry_point_offset = 0x258;
-static constexpr dart::compiler::target::word Thread_tsan_utils_offset = 0x7d8;
+static constexpr dart::compiler::target::word Thread_tsan_utils_offset = 0x7e8;
static constexpr dart::compiler::target::word TsanUtils_setjmp_function_offset =
0x0;
static constexpr dart::compiler::target::word TsanUtils_setjmp_buffer_offset =
@@ -1780,7 +1780,7 @@
static constexpr dart::compiler::target::word
Thread_allocate_object_slow_entry_point_offset = 0x10c;
static constexpr dart::compiler::target::word Thread_api_top_scope_offset =
- 0x3bc;
+ 0x3c4;
static constexpr dart::compiler::target::word
Thread_async_exception_handler_stub_offset = 0xa4;
static constexpr dart::compiler::target::word
@@ -1793,13 +1793,13 @@
Thread_call_to_runtime_entry_point_offset = 0xf8;
static constexpr dart::compiler::target::word
Thread_call_to_runtime_stub_offset = 0x60;
-static constexpr dart::compiler::target::word Thread_dart_stream_offset = 0x3f8;
+static constexpr dart::compiler::target::word Thread_dart_stream_offset = 0x400;
static constexpr dart::compiler::target::word
Thread_dispatch_table_array_offset = 0x2c;
static constexpr dart::compiler::target::word
- Thread_double_truncate_round_supported_offset = 0x3c0;
+ Thread_double_truncate_round_supported_offset = 0x3c8;
static constexpr dart::compiler::target::word
- Thread_service_extension_stream_offset = 0x3fc;
+ Thread_service_extension_stream_offset = 0x404;
static constexpr dart::compiler::target::word Thread_optimize_entry_offset =
0x120;
static constexpr dart::compiler::target::word Thread_optimize_stub_offset =
@@ -1915,7 +1915,7 @@
0x324;
static constexpr dart::compiler::target::word
Thread_shared_field_table_values_offset = 0x34;
-static constexpr dart::compiler::target::word Thread_single_step_offset = 0x3ec;
+static constexpr dart::compiler::target::word Thread_single_step_offset = 0x3f4;
static constexpr dart::compiler::target::word
Thread_slow_type_test_stub_offset = 0xdc;
static constexpr dart::compiler::target::word
@@ -1962,18 +1962,18 @@
static constexpr dart::compiler::target::word Thread_top_offset = 0x24;
static constexpr dart::compiler::target::word Thread_top_resource_offset = 0x10;
static constexpr dart::compiler::target::word
- Thread_unboxed_runtime_arg_offset = 0x3c8;
+ Thread_unboxed_runtime_arg_offset = 0x3d0;
static constexpr dart::compiler::target::word Thread_vm_tag_offset = 0x308;
static constexpr dart::compiler::target::word
Thread_write_barrier_entry_point_offset = 0xf0;
static constexpr dart::compiler::target::word Thread_write_barrier_mask_offset =
0x20;
static constexpr dart::compiler::target::word Thread_next_task_id_offset =
- 0x3d8;
-static constexpr dart::compiler::target::word Thread_random_offset = 0x3e0;
+ 0x3e0;
+static constexpr dart::compiler::target::word Thread_random_offset = 0x3e8;
static constexpr dart::compiler::target::word
Thread_jump_to_frame_entry_point_offset = 0x12c;
-static constexpr dart::compiler::target::word Thread_tsan_utils_offset = 0x3e8;
+static constexpr dart::compiler::target::word Thread_tsan_utils_offset = 0x3f0;
static constexpr dart::compiler::target::word TsanUtils_setjmp_function_offset =
0x0;
static constexpr dart::compiler::target::word TsanUtils_setjmp_buffer_offset =
@@ -2497,7 +2497,7 @@
static constexpr dart::compiler::target::word
Thread_allocate_object_slow_entry_point_offset = 0x218;
static constexpr dart::compiler::target::word Thread_api_top_scope_offset =
- 0x7f0;
+ 0x800;
static constexpr dart::compiler::target::word
Thread_async_exception_handler_stub_offset = 0x148;
static constexpr dart::compiler::target::word
@@ -2510,13 +2510,13 @@
Thread_call_to_runtime_entry_point_offset = 0x1f0;
static constexpr dart::compiler::target::word
Thread_call_to_runtime_stub_offset = 0xc0;
-static constexpr dart::compiler::target::word Thread_dart_stream_offset = 0x840;
+static constexpr dart::compiler::target::word Thread_dart_stream_offset = 0x850;
static constexpr dart::compiler::target::word
Thread_dispatch_table_array_offset = 0x58;
static constexpr dart::compiler::target::word
- Thread_double_truncate_round_supported_offset = 0x7f8;
+ Thread_double_truncate_round_supported_offset = 0x808;
static constexpr dart::compiler::target::word
- Thread_service_extension_stream_offset = 0x848;
+ Thread_service_extension_stream_offset = 0x858;
static constexpr dart::compiler::target::word Thread_optimize_entry_offset =
0x240;
static constexpr dart::compiler::target::word Thread_optimize_stub_offset =
@@ -2632,7 +2632,7 @@
0x6c0;
static constexpr dart::compiler::target::word
Thread_shared_field_table_values_offset = 0x68;
-static constexpr dart::compiler::target::word Thread_single_step_offset = 0x828;
+static constexpr dart::compiler::target::word Thread_single_step_offset = 0x838;
static constexpr dart::compiler::target::word
Thread_slow_type_test_stub_offset = 0x1b8;
static constexpr dart::compiler::target::word
@@ -2679,18 +2679,18 @@
static constexpr dart::compiler::target::word Thread_top_offset = 0x48;
static constexpr dart::compiler::target::word Thread_top_resource_offset = 0x20;
static constexpr dart::compiler::target::word
- Thread_unboxed_runtime_arg_offset = 0x800;
+ Thread_unboxed_runtime_arg_offset = 0x810;
static constexpr dart::compiler::target::word Thread_vm_tag_offset = 0x688;
static constexpr dart::compiler::target::word
Thread_write_barrier_entry_point_offset = 0x1e0;
static constexpr dart::compiler::target::word Thread_write_barrier_mask_offset =
0x40;
static constexpr dart::compiler::target::word Thread_next_task_id_offset =
- 0x810;
-static constexpr dart::compiler::target::word Thread_random_offset = 0x818;
+ 0x820;
+static constexpr dart::compiler::target::word Thread_random_offset = 0x828;
static constexpr dart::compiler::target::word
Thread_jump_to_frame_entry_point_offset = 0x258;
-static constexpr dart::compiler::target::word Thread_tsan_utils_offset = 0x820;
+static constexpr dart::compiler::target::word Thread_tsan_utils_offset = 0x830;
static constexpr dart::compiler::target::word TsanUtils_setjmp_function_offset =
0x0;
static constexpr dart::compiler::target::word TsanUtils_setjmp_buffer_offset =
@@ -3219,7 +3219,7 @@
static constexpr dart::compiler::target::word
Thread_allocate_object_slow_entry_point_offset = 0x220;
static constexpr dart::compiler::target::word Thread_api_top_scope_offset =
- 0x7b0;
+ 0x7c0;
static constexpr dart::compiler::target::word
Thread_async_exception_handler_stub_offset = 0x150;
static constexpr dart::compiler::target::word
@@ -3232,13 +3232,13 @@
Thread_call_to_runtime_entry_point_offset = 0x1f8;
static constexpr dart::compiler::target::word
Thread_call_to_runtime_stub_offset = 0xc8;
-static constexpr dart::compiler::target::word Thread_dart_stream_offset = 0x800;
+static constexpr dart::compiler::target::word Thread_dart_stream_offset = 0x810;
static constexpr dart::compiler::target::word
Thread_dispatch_table_array_offset = 0x60;
static constexpr dart::compiler::target::word
- Thread_double_truncate_round_supported_offset = 0x7b8;
+ Thread_double_truncate_round_supported_offset = 0x7c8;
static constexpr dart::compiler::target::word
- Thread_service_extension_stream_offset = 0x808;
+ Thread_service_extension_stream_offset = 0x818;
static constexpr dart::compiler::target::word Thread_optimize_entry_offset =
0x248;
static constexpr dart::compiler::target::word Thread_optimize_stub_offset =
@@ -3354,7 +3354,7 @@
0x680;
static constexpr dart::compiler::target::word
Thread_shared_field_table_values_offset = 0x70;
-static constexpr dart::compiler::target::word Thread_single_step_offset = 0x7e8;
+static constexpr dart::compiler::target::word Thread_single_step_offset = 0x7f8;
static constexpr dart::compiler::target::word
Thread_slow_type_test_stub_offset = 0x1c0;
static constexpr dart::compiler::target::word
@@ -3401,7 +3401,7 @@
static constexpr dart::compiler::target::word Thread_top_offset = 0x50;
static constexpr dart::compiler::target::word Thread_top_resource_offset = 0x20;
static constexpr dart::compiler::target::word
- Thread_unboxed_runtime_arg_offset = 0x7c0;
+ Thread_unboxed_runtime_arg_offset = 0x7d0;
static constexpr dart::compiler::target::word Thread_vm_tag_offset = 0x648;
static constexpr dart::compiler::target::word
Thread_write_barrier_entry_point_offset = 0x1e8;
@@ -3409,11 +3409,11 @@
0x40;
static constexpr dart::compiler::target::word Thread_heap_base_offset = 0x48;
static constexpr dart::compiler::target::word Thread_next_task_id_offset =
- 0x7d0;
-static constexpr dart::compiler::target::word Thread_random_offset = 0x7d8;
+ 0x7e0;
+static constexpr dart::compiler::target::word Thread_random_offset = 0x7e8;
static constexpr dart::compiler::target::word
Thread_jump_to_frame_entry_point_offset = 0x260;
-static constexpr dart::compiler::target::word Thread_tsan_utils_offset = 0x7e0;
+static constexpr dart::compiler::target::word Thread_tsan_utils_offset = 0x7f0;
static constexpr dart::compiler::target::word TsanUtils_setjmp_function_offset =
0x0;
static constexpr dart::compiler::target::word TsanUtils_setjmp_buffer_offset =
@@ -3938,7 +3938,7 @@
static constexpr dart::compiler::target::word
Thread_allocate_object_slow_entry_point_offset = 0x220;
static constexpr dart::compiler::target::word Thread_api_top_scope_offset =
- 0x7f8;
+ 0x808;
static constexpr dart::compiler::target::word
Thread_async_exception_handler_stub_offset = 0x150;
static constexpr dart::compiler::target::word
@@ -3951,13 +3951,13 @@
Thread_call_to_runtime_entry_point_offset = 0x1f8;
static constexpr dart::compiler::target::word
Thread_call_to_runtime_stub_offset = 0xc8;
-static constexpr dart::compiler::target::word Thread_dart_stream_offset = 0x848;
+static constexpr dart::compiler::target::word Thread_dart_stream_offset = 0x858;
static constexpr dart::compiler::target::word
Thread_dispatch_table_array_offset = 0x60;
static constexpr dart::compiler::target::word
- Thread_double_truncate_round_supported_offset = 0x800;
+ Thread_double_truncate_round_supported_offset = 0x810;
static constexpr dart::compiler::target::word
- Thread_service_extension_stream_offset = 0x850;
+ Thread_service_extension_stream_offset = 0x860;
static constexpr dart::compiler::target::word Thread_optimize_entry_offset =
0x248;
static constexpr dart::compiler::target::word Thread_optimize_stub_offset =
@@ -4073,7 +4073,7 @@
0x6c8;
static constexpr dart::compiler::target::word
Thread_shared_field_table_values_offset = 0x70;
-static constexpr dart::compiler::target::word Thread_single_step_offset = 0x830;
+static constexpr dart::compiler::target::word Thread_single_step_offset = 0x840;
static constexpr dart::compiler::target::word
Thread_slow_type_test_stub_offset = 0x1c0;
static constexpr dart::compiler::target::word
@@ -4120,7 +4120,7 @@
static constexpr dart::compiler::target::word Thread_top_offset = 0x50;
static constexpr dart::compiler::target::word Thread_top_resource_offset = 0x20;
static constexpr dart::compiler::target::word
- Thread_unboxed_runtime_arg_offset = 0x808;
+ Thread_unboxed_runtime_arg_offset = 0x818;
static constexpr dart::compiler::target::word Thread_vm_tag_offset = 0x690;
static constexpr dart::compiler::target::word
Thread_write_barrier_entry_point_offset = 0x1e8;
@@ -4128,11 +4128,11 @@
0x40;
static constexpr dart::compiler::target::word Thread_heap_base_offset = 0x48;
static constexpr dart::compiler::target::word Thread_next_task_id_offset =
- 0x818;
-static constexpr dart::compiler::target::word Thread_random_offset = 0x820;
+ 0x828;
+static constexpr dart::compiler::target::word Thread_random_offset = 0x830;
static constexpr dart::compiler::target::word
Thread_jump_to_frame_entry_point_offset = 0x260;
-static constexpr dart::compiler::target::word Thread_tsan_utils_offset = 0x828;
+static constexpr dart::compiler::target::word Thread_tsan_utils_offset = 0x838;
static constexpr dart::compiler::target::word TsanUtils_setjmp_function_offset =
0x0;
static constexpr dart::compiler::target::word TsanUtils_setjmp_buffer_offset =
@@ -4657,7 +4657,7 @@
static constexpr dart::compiler::target::word
Thread_allocate_object_slow_entry_point_offset = 0x10c;
static constexpr dart::compiler::target::word Thread_api_top_scope_offset =
- 0x3f0;
+ 0x3f8;
static constexpr dart::compiler::target::word
Thread_async_exception_handler_stub_offset = 0xa4;
static constexpr dart::compiler::target::word
@@ -4670,13 +4670,13 @@
Thread_call_to_runtime_entry_point_offset = 0xf8;
static constexpr dart::compiler::target::word
Thread_call_to_runtime_stub_offset = 0x60;
-static constexpr dart::compiler::target::word Thread_dart_stream_offset = 0x428;
+static constexpr dart::compiler::target::word Thread_dart_stream_offset = 0x430;
static constexpr dart::compiler::target::word
Thread_dispatch_table_array_offset = 0x2c;
static constexpr dart::compiler::target::word
- Thread_double_truncate_round_supported_offset = 0x3f4;
+ Thread_double_truncate_round_supported_offset = 0x3fc;
static constexpr dart::compiler::target::word
- Thread_service_extension_stream_offset = 0x42c;
+ Thread_service_extension_stream_offset = 0x434;
static constexpr dart::compiler::target::word Thread_optimize_entry_offset =
0x120;
static constexpr dart::compiler::target::word Thread_optimize_stub_offset =
@@ -4792,7 +4792,7 @@
0x358;
static constexpr dart::compiler::target::word
Thread_shared_field_table_values_offset = 0x34;
-static constexpr dart::compiler::target::word Thread_single_step_offset = 0x41c;
+static constexpr dart::compiler::target::word Thread_single_step_offset = 0x424;
static constexpr dart::compiler::target::word
Thread_slow_type_test_stub_offset = 0xdc;
static constexpr dart::compiler::target::word
@@ -4839,18 +4839,18 @@
static constexpr dart::compiler::target::word Thread_top_offset = 0x24;
static constexpr dart::compiler::target::word Thread_top_resource_offset = 0x10;
static constexpr dart::compiler::target::word
- Thread_unboxed_runtime_arg_offset = 0x3f8;
+ Thread_unboxed_runtime_arg_offset = 0x400;
static constexpr dart::compiler::target::word Thread_vm_tag_offset = 0x33c;
static constexpr dart::compiler::target::word
Thread_write_barrier_entry_point_offset = 0xf0;
static constexpr dart::compiler::target::word Thread_write_barrier_mask_offset =
0x20;
static constexpr dart::compiler::target::word Thread_next_task_id_offset =
- 0x408;
-static constexpr dart::compiler::target::word Thread_random_offset = 0x410;
+ 0x410;
+static constexpr dart::compiler::target::word Thread_random_offset = 0x418;
static constexpr dart::compiler::target::word
Thread_jump_to_frame_entry_point_offset = 0x12c;
-static constexpr dart::compiler::target::word Thread_tsan_utils_offset = 0x418;
+static constexpr dart::compiler::target::word Thread_tsan_utils_offset = 0x420;
static constexpr dart::compiler::target::word TsanUtils_setjmp_function_offset =
0x0;
static constexpr dart::compiler::target::word TsanUtils_setjmp_buffer_offset =
@@ -5376,7 +5376,7 @@
static constexpr dart::compiler::target::word
Thread_allocate_object_slow_entry_point_offset = 0x218;
static constexpr dart::compiler::target::word Thread_api_top_scope_offset =
- 0x7e0;
+ 0x7f0;
static constexpr dart::compiler::target::word
Thread_async_exception_handler_stub_offset = 0x148;
static constexpr dart::compiler::target::word
@@ -5389,13 +5389,13 @@
Thread_call_to_runtime_entry_point_offset = 0x1f0;
static constexpr dart::compiler::target::word
Thread_call_to_runtime_stub_offset = 0xc0;
-static constexpr dart::compiler::target::word Thread_dart_stream_offset = 0x830;
+static constexpr dart::compiler::target::word Thread_dart_stream_offset = 0x840;
static constexpr dart::compiler::target::word
Thread_dispatch_table_array_offset = 0x58;
static constexpr dart::compiler::target::word
- Thread_double_truncate_round_supported_offset = 0x7e8;
+ Thread_double_truncate_round_supported_offset = 0x7f8;
static constexpr dart::compiler::target::word
- Thread_service_extension_stream_offset = 0x838;
+ Thread_service_extension_stream_offset = 0x848;
static constexpr dart::compiler::target::word Thread_optimize_entry_offset =
0x240;
static constexpr dart::compiler::target::word Thread_optimize_stub_offset =
@@ -5511,7 +5511,7 @@
0x6b0;
static constexpr dart::compiler::target::word
Thread_shared_field_table_values_offset = 0x68;
-static constexpr dart::compiler::target::word Thread_single_step_offset = 0x818;
+static constexpr dart::compiler::target::word Thread_single_step_offset = 0x828;
static constexpr dart::compiler::target::word
Thread_slow_type_test_stub_offset = 0x1b8;
static constexpr dart::compiler::target::word
@@ -5558,18 +5558,18 @@
static constexpr dart::compiler::target::word Thread_top_offset = 0x48;
static constexpr dart::compiler::target::word Thread_top_resource_offset = 0x20;
static constexpr dart::compiler::target::word
- Thread_unboxed_runtime_arg_offset = 0x7f0;
+ Thread_unboxed_runtime_arg_offset = 0x800;
static constexpr dart::compiler::target::word Thread_vm_tag_offset = 0x678;
static constexpr dart::compiler::target::word
Thread_write_barrier_entry_point_offset = 0x1e0;
static constexpr dart::compiler::target::word Thread_write_barrier_mask_offset =
0x40;
static constexpr dart::compiler::target::word Thread_next_task_id_offset =
- 0x800;
-static constexpr dart::compiler::target::word Thread_random_offset = 0x808;
+ 0x810;
+static constexpr dart::compiler::target::word Thread_random_offset = 0x818;
static constexpr dart::compiler::target::word
Thread_jump_to_frame_entry_point_offset = 0x258;
-static constexpr dart::compiler::target::word Thread_tsan_utils_offset = 0x810;
+static constexpr dart::compiler::target::word Thread_tsan_utils_offset = 0x820;
static constexpr dart::compiler::target::word TsanUtils_setjmp_function_offset =
0x0;
static constexpr dart::compiler::target::word TsanUtils_setjmp_buffer_offset =
@@ -6088,7 +6088,7 @@
static constexpr dart::compiler::target::word
Thread_allocate_object_slow_entry_point_offset = 0x10c;
static constexpr dart::compiler::target::word Thread_api_top_scope_offset =
- 0x3c8;
+ 0x3d0;
static constexpr dart::compiler::target::word
Thread_async_exception_handler_stub_offset = 0xa4;
static constexpr dart::compiler::target::word
@@ -6101,13 +6101,13 @@
Thread_call_to_runtime_entry_point_offset = 0xf8;
static constexpr dart::compiler::target::word
Thread_call_to_runtime_stub_offset = 0x60;
-static constexpr dart::compiler::target::word Thread_dart_stream_offset = 0x400;
+static constexpr dart::compiler::target::word Thread_dart_stream_offset = 0x408;
static constexpr dart::compiler::target::word
Thread_dispatch_table_array_offset = 0x2c;
static constexpr dart::compiler::target::word
- Thread_double_truncate_round_supported_offset = 0x3cc;
+ Thread_double_truncate_round_supported_offset = 0x3d4;
static constexpr dart::compiler::target::word
- Thread_service_extension_stream_offset = 0x404;
+ Thread_service_extension_stream_offset = 0x40c;
static constexpr dart::compiler::target::word Thread_optimize_entry_offset =
0x120;
static constexpr dart::compiler::target::word Thread_optimize_stub_offset =
@@ -6269,18 +6269,18 @@
static constexpr dart::compiler::target::word Thread_top_offset = 0x24;
static constexpr dart::compiler::target::word Thread_top_resource_offset = 0x10;
static constexpr dart::compiler::target::word
- Thread_unboxed_runtime_arg_offset = 0x3d0;
+ Thread_unboxed_runtime_arg_offset = 0x3d8;
static constexpr dart::compiler::target::word Thread_vm_tag_offset = 0x314;
static constexpr dart::compiler::target::word
Thread_write_barrier_entry_point_offset = 0xf0;
static constexpr dart::compiler::target::word Thread_write_barrier_mask_offset =
0x20;
static constexpr dart::compiler::target::word Thread_next_task_id_offset =
- 0x3e0;
-static constexpr dart::compiler::target::word Thread_random_offset = 0x3e8;
+ 0x3e8;
+static constexpr dart::compiler::target::word Thread_random_offset = 0x3f0;
static constexpr dart::compiler::target::word
Thread_jump_to_frame_entry_point_offset = 0x12c;
-static constexpr dart::compiler::target::word Thread_tsan_utils_offset = 0x3f0;
+static constexpr dart::compiler::target::word Thread_tsan_utils_offset = 0x3f8;
static constexpr dart::compiler::target::word TsanUtils_setjmp_function_offset =
0x0;
static constexpr dart::compiler::target::word TsanUtils_setjmp_buffer_offset =
@@ -6798,7 +6798,7 @@
static constexpr dart::compiler::target::word
Thread_allocate_object_slow_entry_point_offset = 0x218;
static constexpr dart::compiler::target::word Thread_api_top_scope_offset =
- 0x7a8;
+ 0x7b8;
static constexpr dart::compiler::target::word
Thread_async_exception_handler_stub_offset = 0x148;
static constexpr dart::compiler::target::word
@@ -6811,13 +6811,13 @@
Thread_call_to_runtime_entry_point_offset = 0x1f0;
static constexpr dart::compiler::target::word
Thread_call_to_runtime_stub_offset = 0xc0;
-static constexpr dart::compiler::target::word Thread_dart_stream_offset = 0x7f8;
+static constexpr dart::compiler::target::word Thread_dart_stream_offset = 0x808;
static constexpr dart::compiler::target::word
Thread_dispatch_table_array_offset = 0x58;
static constexpr dart::compiler::target::word
- Thread_double_truncate_round_supported_offset = 0x7b0;
+ Thread_double_truncate_round_supported_offset = 0x7c0;
static constexpr dart::compiler::target::word
- Thread_service_extension_stream_offset = 0x800;
+ Thread_service_extension_stream_offset = 0x810;
static constexpr dart::compiler::target::word Thread_optimize_entry_offset =
0x240;
static constexpr dart::compiler::target::word Thread_optimize_stub_offset =
@@ -6979,18 +6979,18 @@
static constexpr dart::compiler::target::word Thread_top_offset = 0x48;
static constexpr dart::compiler::target::word Thread_top_resource_offset = 0x20;
static constexpr dart::compiler::target::word
- Thread_unboxed_runtime_arg_offset = 0x7b8;
+ Thread_unboxed_runtime_arg_offset = 0x7c8;
static constexpr dart::compiler::target::word Thread_vm_tag_offset = 0x640;
static constexpr dart::compiler::target::word
Thread_write_barrier_entry_point_offset = 0x1e0;
static constexpr dart::compiler::target::word Thread_write_barrier_mask_offset =
0x40;
static constexpr dart::compiler::target::word Thread_next_task_id_offset =
- 0x7c8;
-static constexpr dart::compiler::target::word Thread_random_offset = 0x7d0;
+ 0x7d8;
+static constexpr dart::compiler::target::word Thread_random_offset = 0x7e0;
static constexpr dart::compiler::target::word
Thread_jump_to_frame_entry_point_offset = 0x258;
-static constexpr dart::compiler::target::word Thread_tsan_utils_offset = 0x7d8;
+static constexpr dart::compiler::target::word Thread_tsan_utils_offset = 0x7e8;
static constexpr dart::compiler::target::word TsanUtils_setjmp_function_offset =
0x0;
static constexpr dart::compiler::target::word TsanUtils_setjmp_buffer_offset =
@@ -7508,7 +7508,7 @@
static constexpr dart::compiler::target::word
Thread_allocate_object_slow_entry_point_offset = 0x10c;
static constexpr dart::compiler::target::word Thread_api_top_scope_offset =
- 0x3bc;
+ 0x3c4;
static constexpr dart::compiler::target::word
Thread_async_exception_handler_stub_offset = 0xa4;
static constexpr dart::compiler::target::word
@@ -7521,13 +7521,13 @@
Thread_call_to_runtime_entry_point_offset = 0xf8;
static constexpr dart::compiler::target::word
Thread_call_to_runtime_stub_offset = 0x60;
-static constexpr dart::compiler::target::word Thread_dart_stream_offset = 0x3f8;
+static constexpr dart::compiler::target::word Thread_dart_stream_offset = 0x400;
static constexpr dart::compiler::target::word
Thread_dispatch_table_array_offset = 0x2c;
static constexpr dart::compiler::target::word
- Thread_double_truncate_round_supported_offset = 0x3c0;
+ Thread_double_truncate_round_supported_offset = 0x3c8;
static constexpr dart::compiler::target::word
- Thread_service_extension_stream_offset = 0x3fc;
+ Thread_service_extension_stream_offset = 0x404;
static constexpr dart::compiler::target::word Thread_optimize_entry_offset =
0x120;
static constexpr dart::compiler::target::word Thread_optimize_stub_offset =
@@ -7689,18 +7689,18 @@
static constexpr dart::compiler::target::word Thread_top_offset = 0x24;
static constexpr dart::compiler::target::word Thread_top_resource_offset = 0x10;
static constexpr dart::compiler::target::word
- Thread_unboxed_runtime_arg_offset = 0x3c8;
+ Thread_unboxed_runtime_arg_offset = 0x3d0;
static constexpr dart::compiler::target::word Thread_vm_tag_offset = 0x308;
static constexpr dart::compiler::target::word
Thread_write_barrier_entry_point_offset = 0xf0;
static constexpr dart::compiler::target::word Thread_write_barrier_mask_offset =
0x20;
static constexpr dart::compiler::target::word Thread_next_task_id_offset =
- 0x3d8;
-static constexpr dart::compiler::target::word Thread_random_offset = 0x3e0;
+ 0x3e0;
+static constexpr dart::compiler::target::word Thread_random_offset = 0x3e8;
static constexpr dart::compiler::target::word
Thread_jump_to_frame_entry_point_offset = 0x12c;
-static constexpr dart::compiler::target::word Thread_tsan_utils_offset = 0x3e8;
+static constexpr dart::compiler::target::word Thread_tsan_utils_offset = 0x3f0;
static constexpr dart::compiler::target::word TsanUtils_setjmp_function_offset =
0x0;
static constexpr dart::compiler::target::word TsanUtils_setjmp_buffer_offset =
@@ -8217,7 +8217,7 @@
static constexpr dart::compiler::target::word
Thread_allocate_object_slow_entry_point_offset = 0x218;
static constexpr dart::compiler::target::word Thread_api_top_scope_offset =
- 0x7f0;
+ 0x800;
static constexpr dart::compiler::target::word
Thread_async_exception_handler_stub_offset = 0x148;
static constexpr dart::compiler::target::word
@@ -8230,13 +8230,13 @@
Thread_call_to_runtime_entry_point_offset = 0x1f0;
static constexpr dart::compiler::target::word
Thread_call_to_runtime_stub_offset = 0xc0;
-static constexpr dart::compiler::target::word Thread_dart_stream_offset = 0x840;
+static constexpr dart::compiler::target::word Thread_dart_stream_offset = 0x850;
static constexpr dart::compiler::target::word
Thread_dispatch_table_array_offset = 0x58;
static constexpr dart::compiler::target::word
- Thread_double_truncate_round_supported_offset = 0x7f8;
+ Thread_double_truncate_round_supported_offset = 0x808;
static constexpr dart::compiler::target::word
- Thread_service_extension_stream_offset = 0x848;
+ Thread_service_extension_stream_offset = 0x858;
static constexpr dart::compiler::target::word Thread_optimize_entry_offset =
0x240;
static constexpr dart::compiler::target::word Thread_optimize_stub_offset =
@@ -8398,18 +8398,18 @@
static constexpr dart::compiler::target::word Thread_top_offset = 0x48;
static constexpr dart::compiler::target::word Thread_top_resource_offset = 0x20;
static constexpr dart::compiler::target::word
- Thread_unboxed_runtime_arg_offset = 0x800;
+ Thread_unboxed_runtime_arg_offset = 0x810;
static constexpr dart::compiler::target::word Thread_vm_tag_offset = 0x688;
static constexpr dart::compiler::target::word
Thread_write_barrier_entry_point_offset = 0x1e0;
static constexpr dart::compiler::target::word Thread_write_barrier_mask_offset =
0x40;
static constexpr dart::compiler::target::word Thread_next_task_id_offset =
- 0x810;
-static constexpr dart::compiler::target::word Thread_random_offset = 0x818;
+ 0x820;
+static constexpr dart::compiler::target::word Thread_random_offset = 0x828;
static constexpr dart::compiler::target::word
Thread_jump_to_frame_entry_point_offset = 0x258;
-static constexpr dart::compiler::target::word Thread_tsan_utils_offset = 0x820;
+static constexpr dart::compiler::target::word Thread_tsan_utils_offset = 0x830;
static constexpr dart::compiler::target::word TsanUtils_setjmp_function_offset =
0x0;
static constexpr dart::compiler::target::word TsanUtils_setjmp_buffer_offset =
@@ -8931,7 +8931,7 @@
static constexpr dart::compiler::target::word
Thread_allocate_object_slow_entry_point_offset = 0x220;
static constexpr dart::compiler::target::word Thread_api_top_scope_offset =
- 0x7b0;
+ 0x7c0;
static constexpr dart::compiler::target::word
Thread_async_exception_handler_stub_offset = 0x150;
static constexpr dart::compiler::target::word
@@ -8944,13 +8944,13 @@
Thread_call_to_runtime_entry_point_offset = 0x1f8;
static constexpr dart::compiler::target::word
Thread_call_to_runtime_stub_offset = 0xc8;
-static constexpr dart::compiler::target::word Thread_dart_stream_offset = 0x800;
+static constexpr dart::compiler::target::word Thread_dart_stream_offset = 0x810;
static constexpr dart::compiler::target::word
Thread_dispatch_table_array_offset = 0x60;
static constexpr dart::compiler::target::word
- Thread_double_truncate_round_supported_offset = 0x7b8;
+ Thread_double_truncate_round_supported_offset = 0x7c8;
static constexpr dart::compiler::target::word
- Thread_service_extension_stream_offset = 0x808;
+ Thread_service_extension_stream_offset = 0x818;
static constexpr dart::compiler::target::word Thread_optimize_entry_offset =
0x248;
static constexpr dart::compiler::target::word Thread_optimize_stub_offset =
@@ -9112,7 +9112,7 @@
static constexpr dart::compiler::target::word Thread_top_offset = 0x50;
static constexpr dart::compiler::target::word Thread_top_resource_offset = 0x20;
static constexpr dart::compiler::target::word
- Thread_unboxed_runtime_arg_offset = 0x7c0;
+ Thread_unboxed_runtime_arg_offset = 0x7d0;
static constexpr dart::compiler::target::word Thread_vm_tag_offset = 0x648;
static constexpr dart::compiler::target::word
Thread_write_barrier_entry_point_offset = 0x1e8;
@@ -9120,11 +9120,11 @@
0x40;
static constexpr dart::compiler::target::word Thread_heap_base_offset = 0x48;
static constexpr dart::compiler::target::word Thread_next_task_id_offset =
- 0x7d0;
-static constexpr dart::compiler::target::word Thread_random_offset = 0x7d8;
+ 0x7e0;
+static constexpr dart::compiler::target::word Thread_random_offset = 0x7e8;
static constexpr dart::compiler::target::word
Thread_jump_to_frame_entry_point_offset = 0x260;
-static constexpr dart::compiler::target::word Thread_tsan_utils_offset = 0x7e0;
+static constexpr dart::compiler::target::word Thread_tsan_utils_offset = 0x7f0;
static constexpr dart::compiler::target::word TsanUtils_setjmp_function_offset =
0x0;
static constexpr dart::compiler::target::word TsanUtils_setjmp_buffer_offset =
@@ -9642,7 +9642,7 @@
static constexpr dart::compiler::target::word
Thread_allocate_object_slow_entry_point_offset = 0x220;
static constexpr dart::compiler::target::word Thread_api_top_scope_offset =
- 0x7f8;
+ 0x808;
static constexpr dart::compiler::target::word
Thread_async_exception_handler_stub_offset = 0x150;
static constexpr dart::compiler::target::word
@@ -9655,13 +9655,13 @@
Thread_call_to_runtime_entry_point_offset = 0x1f8;
static constexpr dart::compiler::target::word
Thread_call_to_runtime_stub_offset = 0xc8;
-static constexpr dart::compiler::target::word Thread_dart_stream_offset = 0x848;
+static constexpr dart::compiler::target::word Thread_dart_stream_offset = 0x858;
static constexpr dart::compiler::target::word
Thread_dispatch_table_array_offset = 0x60;
static constexpr dart::compiler::target::word
- Thread_double_truncate_round_supported_offset = 0x800;
+ Thread_double_truncate_round_supported_offset = 0x810;
static constexpr dart::compiler::target::word
- Thread_service_extension_stream_offset = 0x850;
+ Thread_service_extension_stream_offset = 0x860;
static constexpr dart::compiler::target::word Thread_optimize_entry_offset =
0x248;
static constexpr dart::compiler::target::word Thread_optimize_stub_offset =
@@ -9823,7 +9823,7 @@
static constexpr dart::compiler::target::word Thread_top_offset = 0x50;
static constexpr dart::compiler::target::word Thread_top_resource_offset = 0x20;
static constexpr dart::compiler::target::word
- Thread_unboxed_runtime_arg_offset = 0x808;
+ Thread_unboxed_runtime_arg_offset = 0x818;
static constexpr dart::compiler::target::word Thread_vm_tag_offset = 0x690;
static constexpr dart::compiler::target::word
Thread_write_barrier_entry_point_offset = 0x1e8;
@@ -9831,11 +9831,11 @@
0x40;
static constexpr dart::compiler::target::word Thread_heap_base_offset = 0x48;
static constexpr dart::compiler::target::word Thread_next_task_id_offset =
- 0x818;
-static constexpr dart::compiler::target::word Thread_random_offset = 0x820;
+ 0x828;
+static constexpr dart::compiler::target::word Thread_random_offset = 0x830;
static constexpr dart::compiler::target::word
Thread_jump_to_frame_entry_point_offset = 0x260;
-static constexpr dart::compiler::target::word Thread_tsan_utils_offset = 0x828;
+static constexpr dart::compiler::target::word Thread_tsan_utils_offset = 0x838;
static constexpr dart::compiler::target::word TsanUtils_setjmp_function_offset =
0x0;
static constexpr dart::compiler::target::word TsanUtils_setjmp_buffer_offset =
@@ -10353,7 +10353,7 @@
static constexpr dart::compiler::target::word
Thread_allocate_object_slow_entry_point_offset = 0x10c;
static constexpr dart::compiler::target::word Thread_api_top_scope_offset =
- 0x3f0;
+ 0x3f8;
static constexpr dart::compiler::target::word
Thread_async_exception_handler_stub_offset = 0xa4;
static constexpr dart::compiler::target::word
@@ -10366,13 +10366,13 @@
Thread_call_to_runtime_entry_point_offset = 0xf8;
static constexpr dart::compiler::target::word
Thread_call_to_runtime_stub_offset = 0x60;
-static constexpr dart::compiler::target::word Thread_dart_stream_offset = 0x428;
+static constexpr dart::compiler::target::word Thread_dart_stream_offset = 0x430;
static constexpr dart::compiler::target::word
Thread_dispatch_table_array_offset = 0x2c;
static constexpr dart::compiler::target::word
- Thread_double_truncate_round_supported_offset = 0x3f4;
+ Thread_double_truncate_round_supported_offset = 0x3fc;
static constexpr dart::compiler::target::word
- Thread_service_extension_stream_offset = 0x42c;
+ Thread_service_extension_stream_offset = 0x434;
static constexpr dart::compiler::target::word Thread_optimize_entry_offset =
0x120;
static constexpr dart::compiler::target::word Thread_optimize_stub_offset =
@@ -10534,18 +10534,18 @@
static constexpr dart::compiler::target::word Thread_top_offset = 0x24;
static constexpr dart::compiler::target::word Thread_top_resource_offset = 0x10;
static constexpr dart::compiler::target::word
- Thread_unboxed_runtime_arg_offset = 0x3f8;
+ Thread_unboxed_runtime_arg_offset = 0x400;
static constexpr dart::compiler::target::word Thread_vm_tag_offset = 0x33c;
static constexpr dart::compiler::target::word
Thread_write_barrier_entry_point_offset = 0xf0;
static constexpr dart::compiler::target::word Thread_write_barrier_mask_offset =
0x20;
static constexpr dart::compiler::target::word Thread_next_task_id_offset =
- 0x408;
-static constexpr dart::compiler::target::word Thread_random_offset = 0x410;
+ 0x410;
+static constexpr dart::compiler::target::word Thread_random_offset = 0x418;
static constexpr dart::compiler::target::word
Thread_jump_to_frame_entry_point_offset = 0x12c;
-static constexpr dart::compiler::target::word Thread_tsan_utils_offset = 0x418;
+static constexpr dart::compiler::target::word Thread_tsan_utils_offset = 0x420;
static constexpr dart::compiler::target::word TsanUtils_setjmp_function_offset =
0x0;
static constexpr dart::compiler::target::word TsanUtils_setjmp_buffer_offset =
@@ -11064,7 +11064,7 @@
static constexpr dart::compiler::target::word
Thread_allocate_object_slow_entry_point_offset = 0x218;
static constexpr dart::compiler::target::word Thread_api_top_scope_offset =
- 0x7e0;
+ 0x7f0;
static constexpr dart::compiler::target::word
Thread_async_exception_handler_stub_offset = 0x148;
static constexpr dart::compiler::target::word
@@ -11077,13 +11077,13 @@
Thread_call_to_runtime_entry_point_offset = 0x1f0;
static constexpr dart::compiler::target::word
Thread_call_to_runtime_stub_offset = 0xc0;
-static constexpr dart::compiler::target::word Thread_dart_stream_offset = 0x830;
+static constexpr dart::compiler::target::word Thread_dart_stream_offset = 0x840;
static constexpr dart::compiler::target::word
Thread_dispatch_table_array_offset = 0x58;
static constexpr dart::compiler::target::word
- Thread_double_truncate_round_supported_offset = 0x7e8;
+ Thread_double_truncate_round_supported_offset = 0x7f8;
static constexpr dart::compiler::target::word
- Thread_service_extension_stream_offset = 0x838;
+ Thread_service_extension_stream_offset = 0x848;
static constexpr dart::compiler::target::word Thread_optimize_entry_offset =
0x240;
static constexpr dart::compiler::target::word Thread_optimize_stub_offset =
@@ -11245,18 +11245,18 @@
static constexpr dart::compiler::target::word Thread_top_offset = 0x48;
static constexpr dart::compiler::target::word Thread_top_resource_offset = 0x20;
static constexpr dart::compiler::target::word
- Thread_unboxed_runtime_arg_offset = 0x7f0;
+ Thread_unboxed_runtime_arg_offset = 0x800;
static constexpr dart::compiler::target::word Thread_vm_tag_offset = 0x678;
static constexpr dart::compiler::target::word
Thread_write_barrier_entry_point_offset = 0x1e0;
static constexpr dart::compiler::target::word Thread_write_barrier_mask_offset =
0x40;
static constexpr dart::compiler::target::word Thread_next_task_id_offset =
- 0x800;
-static constexpr dart::compiler::target::word Thread_random_offset = 0x808;
+ 0x810;
+static constexpr dart::compiler::target::word Thread_random_offset = 0x818;
static constexpr dart::compiler::target::word
Thread_jump_to_frame_entry_point_offset = 0x258;
-static constexpr dart::compiler::target::word Thread_tsan_utils_offset = 0x810;
+static constexpr dart::compiler::target::word Thread_tsan_utils_offset = 0x820;
static constexpr dart::compiler::target::word TsanUtils_setjmp_function_offset =
0x0;
static constexpr dart::compiler::target::word TsanUtils_setjmp_buffer_offset =
@@ -11812,7 +11812,7 @@
static constexpr dart::compiler::target::word
AOT_Thread_allocate_object_slow_entry_point_offset = 0x10c;
static constexpr dart::compiler::target::word AOT_Thread_api_top_scope_offset =
- 0x3c8;
+ 0x3d0;
static constexpr dart::compiler::target::word
AOT_Thread_async_exception_handler_stub_offset = 0xa4;
static constexpr dart::compiler::target::word
@@ -11828,13 +11828,13 @@
static constexpr dart::compiler::target::word
AOT_Thread_call_to_runtime_stub_offset = 0x60;
static constexpr dart::compiler::target::word AOT_Thread_dart_stream_offset =
- 0x400;
+ 0x408;
static constexpr dart::compiler::target::word
AOT_Thread_dispatch_table_array_offset = 0x2c;
static constexpr dart::compiler::target::word
- AOT_Thread_double_truncate_round_supported_offset = 0x3cc;
+ AOT_Thread_double_truncate_round_supported_offset = 0x3d4;
static constexpr dart::compiler::target::word
- AOT_Thread_service_extension_stream_offset = 0x404;
+ AOT_Thread_service_extension_stream_offset = 0x40c;
static constexpr dart::compiler::target::word AOT_Thread_optimize_entry_offset =
0x120;
static constexpr dart::compiler::target::word AOT_Thread_optimize_stub_offset =
@@ -11956,7 +11956,7 @@
static constexpr dart::compiler::target::word
AOT_Thread_shared_field_table_values_offset = 0x34;
static constexpr dart::compiler::target::word AOT_Thread_single_step_offset =
- 0x3f4;
+ 0x3fc;
static constexpr dart::compiler::target::word
AOT_Thread_slow_type_test_stub_offset = 0xdc;
static constexpr dart::compiler::target::word
@@ -12007,19 +12007,19 @@
static constexpr dart::compiler::target::word AOT_Thread_top_resource_offset =
0x10;
static constexpr dart::compiler::target::word
- AOT_Thread_unboxed_runtime_arg_offset = 0x3d0;
+ AOT_Thread_unboxed_runtime_arg_offset = 0x3d8;
static constexpr dart::compiler::target::word AOT_Thread_vm_tag_offset = 0x314;
static constexpr dart::compiler::target::word
AOT_Thread_write_barrier_entry_point_offset = 0xf0;
static constexpr dart::compiler::target::word
AOT_Thread_write_barrier_mask_offset = 0x20;
static constexpr dart::compiler::target::word AOT_Thread_next_task_id_offset =
- 0x3e0;
-static constexpr dart::compiler::target::word AOT_Thread_random_offset = 0x3e8;
+ 0x3e8;
+static constexpr dart::compiler::target::word AOT_Thread_random_offset = 0x3f0;
static constexpr dart::compiler::target::word
AOT_Thread_jump_to_frame_entry_point_offset = 0x12c;
static constexpr dart::compiler::target::word AOT_Thread_tsan_utils_offset =
- 0x3f0;
+ 0x3f8;
static constexpr dart::compiler::target::word
AOT_TsanUtils_setjmp_function_offset = 0x0;
static constexpr dart::compiler::target::word
@@ -12608,7 +12608,7 @@
static constexpr dart::compiler::target::word
AOT_Thread_allocate_object_slow_entry_point_offset = 0x218;
static constexpr dart::compiler::target::word AOT_Thread_api_top_scope_offset =
- 0x7a8;
+ 0x7b8;
static constexpr dart::compiler::target::word
AOT_Thread_async_exception_handler_stub_offset = 0x148;
static constexpr dart::compiler::target::word
@@ -12624,13 +12624,13 @@
static constexpr dart::compiler::target::word
AOT_Thread_call_to_runtime_stub_offset = 0xc0;
static constexpr dart::compiler::target::word AOT_Thread_dart_stream_offset =
- 0x7f8;
+ 0x808;
static constexpr dart::compiler::target::word
AOT_Thread_dispatch_table_array_offset = 0x58;
static constexpr dart::compiler::target::word
- AOT_Thread_double_truncate_round_supported_offset = 0x7b0;
+ AOT_Thread_double_truncate_round_supported_offset = 0x7c0;
static constexpr dart::compiler::target::word
- AOT_Thread_service_extension_stream_offset = 0x800;
+ AOT_Thread_service_extension_stream_offset = 0x810;
static constexpr dart::compiler::target::word AOT_Thread_optimize_entry_offset =
0x240;
static constexpr dart::compiler::target::word AOT_Thread_optimize_stub_offset =
@@ -12752,7 +12752,7 @@
static constexpr dart::compiler::target::word
AOT_Thread_shared_field_table_values_offset = 0x68;
static constexpr dart::compiler::target::word AOT_Thread_single_step_offset =
- 0x7e0;
+ 0x7f0;
static constexpr dart::compiler::target::word
AOT_Thread_slow_type_test_stub_offset = 0x1b8;
static constexpr dart::compiler::target::word
@@ -12803,19 +12803,19 @@
static constexpr dart::compiler::target::word AOT_Thread_top_resource_offset =
0x20;
static constexpr dart::compiler::target::word
- AOT_Thread_unboxed_runtime_arg_offset = 0x7b8;
+ AOT_Thread_unboxed_runtime_arg_offset = 0x7c8;
static constexpr dart::compiler::target::word AOT_Thread_vm_tag_offset = 0x640;
static constexpr dart::compiler::target::word
AOT_Thread_write_barrier_entry_point_offset = 0x1e0;
static constexpr dart::compiler::target::word
AOT_Thread_write_barrier_mask_offset = 0x40;
static constexpr dart::compiler::target::word AOT_Thread_next_task_id_offset =
- 0x7c8;
-static constexpr dart::compiler::target::word AOT_Thread_random_offset = 0x7d0;
+ 0x7d8;
+static constexpr dart::compiler::target::word AOT_Thread_random_offset = 0x7e0;
static constexpr dart::compiler::target::word
AOT_Thread_jump_to_frame_entry_point_offset = 0x258;
static constexpr dart::compiler::target::word AOT_Thread_tsan_utils_offset =
- 0x7d8;
+ 0x7e8;
static constexpr dart::compiler::target::word
AOT_TsanUtils_setjmp_function_offset = 0x0;
static constexpr dart::compiler::target::word
@@ -13411,7 +13411,7 @@
static constexpr dart::compiler::target::word
AOT_Thread_allocate_object_slow_entry_point_offset = 0x218;
static constexpr dart::compiler::target::word AOT_Thread_api_top_scope_offset =
- 0x7f0;
+ 0x800;
static constexpr dart::compiler::target::word
AOT_Thread_async_exception_handler_stub_offset = 0x148;
static constexpr dart::compiler::target::word
@@ -13427,13 +13427,13 @@
static constexpr dart::compiler::target::word
AOT_Thread_call_to_runtime_stub_offset = 0xc0;
static constexpr dart::compiler::target::word AOT_Thread_dart_stream_offset =
- 0x840;
+ 0x850;
static constexpr dart::compiler::target::word
AOT_Thread_dispatch_table_array_offset = 0x58;
static constexpr dart::compiler::target::word
- AOT_Thread_double_truncate_round_supported_offset = 0x7f8;
+ AOT_Thread_double_truncate_round_supported_offset = 0x808;
static constexpr dart::compiler::target::word
- AOT_Thread_service_extension_stream_offset = 0x848;
+ AOT_Thread_service_extension_stream_offset = 0x858;
static constexpr dart::compiler::target::word AOT_Thread_optimize_entry_offset =
0x240;
static constexpr dart::compiler::target::word AOT_Thread_optimize_stub_offset =
@@ -13555,7 +13555,7 @@
static constexpr dart::compiler::target::word
AOT_Thread_shared_field_table_values_offset = 0x68;
static constexpr dart::compiler::target::word AOT_Thread_single_step_offset =
- 0x828;
+ 0x838;
static constexpr dart::compiler::target::word
AOT_Thread_slow_type_test_stub_offset = 0x1b8;
static constexpr dart::compiler::target::word
@@ -13606,19 +13606,19 @@
static constexpr dart::compiler::target::word AOT_Thread_top_resource_offset =
0x20;
static constexpr dart::compiler::target::word
- AOT_Thread_unboxed_runtime_arg_offset = 0x800;
+ AOT_Thread_unboxed_runtime_arg_offset = 0x810;
static constexpr dart::compiler::target::word AOT_Thread_vm_tag_offset = 0x688;
static constexpr dart::compiler::target::word
AOT_Thread_write_barrier_entry_point_offset = 0x1e0;
static constexpr dart::compiler::target::word
AOT_Thread_write_barrier_mask_offset = 0x40;
static constexpr dart::compiler::target::word AOT_Thread_next_task_id_offset =
- 0x810;
-static constexpr dart::compiler::target::word AOT_Thread_random_offset = 0x818;
+ 0x820;
+static constexpr dart::compiler::target::word AOT_Thread_random_offset = 0x828;
static constexpr dart::compiler::target::word
AOT_Thread_jump_to_frame_entry_point_offset = 0x258;
static constexpr dart::compiler::target::word AOT_Thread_tsan_utils_offset =
- 0x820;
+ 0x830;
static constexpr dart::compiler::target::word
AOT_TsanUtils_setjmp_function_offset = 0x0;
static constexpr dart::compiler::target::word
@@ -14210,7 +14210,7 @@
static constexpr dart::compiler::target::word
AOT_Thread_allocate_object_slow_entry_point_offset = 0x220;
static constexpr dart::compiler::target::word AOT_Thread_api_top_scope_offset =
- 0x7b0;
+ 0x7c0;
static constexpr dart::compiler::target::word
AOT_Thread_async_exception_handler_stub_offset = 0x150;
static constexpr dart::compiler::target::word
@@ -14226,13 +14226,13 @@
static constexpr dart::compiler::target::word
AOT_Thread_call_to_runtime_stub_offset = 0xc8;
static constexpr dart::compiler::target::word AOT_Thread_dart_stream_offset =
- 0x800;
+ 0x810;
static constexpr dart::compiler::target::word
AOT_Thread_dispatch_table_array_offset = 0x60;
static constexpr dart::compiler::target::word
- AOT_Thread_double_truncate_round_supported_offset = 0x7b8;
+ AOT_Thread_double_truncate_round_supported_offset = 0x7c8;
static constexpr dart::compiler::target::word
- AOT_Thread_service_extension_stream_offset = 0x808;
+ AOT_Thread_service_extension_stream_offset = 0x818;
static constexpr dart::compiler::target::word AOT_Thread_optimize_entry_offset =
0x248;
static constexpr dart::compiler::target::word AOT_Thread_optimize_stub_offset =
@@ -14354,7 +14354,7 @@
static constexpr dart::compiler::target::word
AOT_Thread_shared_field_table_values_offset = 0x70;
static constexpr dart::compiler::target::word AOT_Thread_single_step_offset =
- 0x7e8;
+ 0x7f8;
static constexpr dart::compiler::target::word
AOT_Thread_slow_type_test_stub_offset = 0x1c0;
static constexpr dart::compiler::target::word
@@ -14405,7 +14405,7 @@
static constexpr dart::compiler::target::word AOT_Thread_top_resource_offset =
0x20;
static constexpr dart::compiler::target::word
- AOT_Thread_unboxed_runtime_arg_offset = 0x7c0;
+ AOT_Thread_unboxed_runtime_arg_offset = 0x7d0;
static constexpr dart::compiler::target::word AOT_Thread_vm_tag_offset = 0x648;
static constexpr dart::compiler::target::word
AOT_Thread_write_barrier_entry_point_offset = 0x1e8;
@@ -14414,12 +14414,12 @@
static constexpr dart::compiler::target::word AOT_Thread_heap_base_offset =
0x48;
static constexpr dart::compiler::target::word AOT_Thread_next_task_id_offset =
- 0x7d0;
-static constexpr dart::compiler::target::word AOT_Thread_random_offset = 0x7d8;
+ 0x7e0;
+static constexpr dart::compiler::target::word AOT_Thread_random_offset = 0x7e8;
static constexpr dart::compiler::target::word
AOT_Thread_jump_to_frame_entry_point_offset = 0x260;
static constexpr dart::compiler::target::word AOT_Thread_tsan_utils_offset =
- 0x7e0;
+ 0x7f0;
static constexpr dart::compiler::target::word
AOT_TsanUtils_setjmp_function_offset = 0x0;
static constexpr dart::compiler::target::word
@@ -15009,7 +15009,7 @@
static constexpr dart::compiler::target::word
AOT_Thread_allocate_object_slow_entry_point_offset = 0x220;
static constexpr dart::compiler::target::word AOT_Thread_api_top_scope_offset =
- 0x7f8;
+ 0x808;
static constexpr dart::compiler::target::word
AOT_Thread_async_exception_handler_stub_offset = 0x150;
static constexpr dart::compiler::target::word
@@ -15025,13 +15025,13 @@
static constexpr dart::compiler::target::word
AOT_Thread_call_to_runtime_stub_offset = 0xc8;
static constexpr dart::compiler::target::word AOT_Thread_dart_stream_offset =
- 0x848;
+ 0x858;
static constexpr dart::compiler::target::word
AOT_Thread_dispatch_table_array_offset = 0x60;
static constexpr dart::compiler::target::word
- AOT_Thread_double_truncate_round_supported_offset = 0x800;
+ AOT_Thread_double_truncate_round_supported_offset = 0x810;
static constexpr dart::compiler::target::word
- AOT_Thread_service_extension_stream_offset = 0x850;
+ AOT_Thread_service_extension_stream_offset = 0x860;
static constexpr dart::compiler::target::word AOT_Thread_optimize_entry_offset =
0x248;
static constexpr dart::compiler::target::word AOT_Thread_optimize_stub_offset =
@@ -15153,7 +15153,7 @@
static constexpr dart::compiler::target::word
AOT_Thread_shared_field_table_values_offset = 0x70;
static constexpr dart::compiler::target::word AOT_Thread_single_step_offset =
- 0x830;
+ 0x840;
static constexpr dart::compiler::target::word
AOT_Thread_slow_type_test_stub_offset = 0x1c0;
static constexpr dart::compiler::target::word
@@ -15204,7 +15204,7 @@
static constexpr dart::compiler::target::word AOT_Thread_top_resource_offset =
0x20;
static constexpr dart::compiler::target::word
- AOT_Thread_unboxed_runtime_arg_offset = 0x808;
+ AOT_Thread_unboxed_runtime_arg_offset = 0x818;
static constexpr dart::compiler::target::word AOT_Thread_vm_tag_offset = 0x690;
static constexpr dart::compiler::target::word
AOT_Thread_write_barrier_entry_point_offset = 0x1e8;
@@ -15213,12 +15213,12 @@
static constexpr dart::compiler::target::word AOT_Thread_heap_base_offset =
0x48;
static constexpr dart::compiler::target::word AOT_Thread_next_task_id_offset =
- 0x818;
-static constexpr dart::compiler::target::word AOT_Thread_random_offset = 0x820;
+ 0x828;
+static constexpr dart::compiler::target::word AOT_Thread_random_offset = 0x830;
static constexpr dart::compiler::target::word
AOT_Thread_jump_to_frame_entry_point_offset = 0x260;
static constexpr dart::compiler::target::word AOT_Thread_tsan_utils_offset =
- 0x828;
+ 0x838;
static constexpr dart::compiler::target::word
AOT_TsanUtils_setjmp_function_offset = 0x0;
static constexpr dart::compiler::target::word
@@ -15809,7 +15809,7 @@
static constexpr dart::compiler::target::word
AOT_Thread_allocate_object_slow_entry_point_offset = 0x10c;
static constexpr dart::compiler::target::word AOT_Thread_api_top_scope_offset =
- 0x3f0;
+ 0x3f8;
static constexpr dart::compiler::target::word
AOT_Thread_async_exception_handler_stub_offset = 0xa4;
static constexpr dart::compiler::target::word
@@ -15825,13 +15825,13 @@
static constexpr dart::compiler::target::word
AOT_Thread_call_to_runtime_stub_offset = 0x60;
static constexpr dart::compiler::target::word AOT_Thread_dart_stream_offset =
- 0x428;
+ 0x430;
static constexpr dart::compiler::target::word
AOT_Thread_dispatch_table_array_offset = 0x2c;
static constexpr dart::compiler::target::word
- AOT_Thread_double_truncate_round_supported_offset = 0x3f4;
+ AOT_Thread_double_truncate_round_supported_offset = 0x3fc;
static constexpr dart::compiler::target::word
- AOT_Thread_service_extension_stream_offset = 0x42c;
+ AOT_Thread_service_extension_stream_offset = 0x434;
static constexpr dart::compiler::target::word AOT_Thread_optimize_entry_offset =
0x120;
static constexpr dart::compiler::target::word AOT_Thread_optimize_stub_offset =
@@ -15953,7 +15953,7 @@
static constexpr dart::compiler::target::word
AOT_Thread_shared_field_table_values_offset = 0x34;
static constexpr dart::compiler::target::word AOT_Thread_single_step_offset =
- 0x41c;
+ 0x424;
static constexpr dart::compiler::target::word
AOT_Thread_slow_type_test_stub_offset = 0xdc;
static constexpr dart::compiler::target::word
@@ -16004,19 +16004,19 @@
static constexpr dart::compiler::target::word AOT_Thread_top_resource_offset =
0x10;
static constexpr dart::compiler::target::word
- AOT_Thread_unboxed_runtime_arg_offset = 0x3f8;
+ AOT_Thread_unboxed_runtime_arg_offset = 0x400;
static constexpr dart::compiler::target::word AOT_Thread_vm_tag_offset = 0x33c;
static constexpr dart::compiler::target::word
AOT_Thread_write_barrier_entry_point_offset = 0xf0;
static constexpr dart::compiler::target::word
AOT_Thread_write_barrier_mask_offset = 0x20;
static constexpr dart::compiler::target::word AOT_Thread_next_task_id_offset =
- 0x408;
-static constexpr dart::compiler::target::word AOT_Thread_random_offset = 0x410;
+ 0x410;
+static constexpr dart::compiler::target::word AOT_Thread_random_offset = 0x418;
static constexpr dart::compiler::target::word
AOT_Thread_jump_to_frame_entry_point_offset = 0x12c;
static constexpr dart::compiler::target::word AOT_Thread_tsan_utils_offset =
- 0x418;
+ 0x420;
static constexpr dart::compiler::target::word
AOT_TsanUtils_setjmp_function_offset = 0x0;
static constexpr dart::compiler::target::word
@@ -16606,7 +16606,7 @@
static constexpr dart::compiler::target::word
AOT_Thread_allocate_object_slow_entry_point_offset = 0x218;
static constexpr dart::compiler::target::word AOT_Thread_api_top_scope_offset =
- 0x7e0;
+ 0x7f0;
static constexpr dart::compiler::target::word
AOT_Thread_async_exception_handler_stub_offset = 0x148;
static constexpr dart::compiler::target::word
@@ -16622,13 +16622,13 @@
static constexpr dart::compiler::target::word
AOT_Thread_call_to_runtime_stub_offset = 0xc0;
static constexpr dart::compiler::target::word AOT_Thread_dart_stream_offset =
- 0x830;
+ 0x840;
static constexpr dart::compiler::target::word
AOT_Thread_dispatch_table_array_offset = 0x58;
static constexpr dart::compiler::target::word
- AOT_Thread_double_truncate_round_supported_offset = 0x7e8;
+ AOT_Thread_double_truncate_round_supported_offset = 0x7f8;
static constexpr dart::compiler::target::word
- AOT_Thread_service_extension_stream_offset = 0x838;
+ AOT_Thread_service_extension_stream_offset = 0x848;
static constexpr dart::compiler::target::word AOT_Thread_optimize_entry_offset =
0x240;
static constexpr dart::compiler::target::word AOT_Thread_optimize_stub_offset =
@@ -16750,7 +16750,7 @@
static constexpr dart::compiler::target::word
AOT_Thread_shared_field_table_values_offset = 0x68;
static constexpr dart::compiler::target::word AOT_Thread_single_step_offset =
- 0x818;
+ 0x828;
static constexpr dart::compiler::target::word
AOT_Thread_slow_type_test_stub_offset = 0x1b8;
static constexpr dart::compiler::target::word
@@ -16801,19 +16801,19 @@
static constexpr dart::compiler::target::word AOT_Thread_top_resource_offset =
0x20;
static constexpr dart::compiler::target::word
- AOT_Thread_unboxed_runtime_arg_offset = 0x7f0;
+ AOT_Thread_unboxed_runtime_arg_offset = 0x800;
static constexpr dart::compiler::target::word AOT_Thread_vm_tag_offset = 0x678;
static constexpr dart::compiler::target::word
AOT_Thread_write_barrier_entry_point_offset = 0x1e0;
static constexpr dart::compiler::target::word
AOT_Thread_write_barrier_mask_offset = 0x40;
static constexpr dart::compiler::target::word AOT_Thread_next_task_id_offset =
- 0x800;
-static constexpr dart::compiler::target::word AOT_Thread_random_offset = 0x808;
+ 0x810;
+static constexpr dart::compiler::target::word AOT_Thread_random_offset = 0x818;
static constexpr dart::compiler::target::word
AOT_Thread_jump_to_frame_entry_point_offset = 0x258;
static constexpr dart::compiler::target::word AOT_Thread_tsan_utils_offset =
- 0x810;
+ 0x820;
static constexpr dart::compiler::target::word
AOT_TsanUtils_setjmp_function_offset = 0x0;
static constexpr dart::compiler::target::word
@@ -17396,7 +17396,7 @@
static constexpr dart::compiler::target::word
AOT_Thread_allocate_object_slow_entry_point_offset = 0x10c;
static constexpr dart::compiler::target::word AOT_Thread_api_top_scope_offset =
- 0x3c8;
+ 0x3d0;
static constexpr dart::compiler::target::word
AOT_Thread_async_exception_handler_stub_offset = 0xa4;
static constexpr dart::compiler::target::word
@@ -17412,13 +17412,13 @@
static constexpr dart::compiler::target::word
AOT_Thread_call_to_runtime_stub_offset = 0x60;
static constexpr dart::compiler::target::word AOT_Thread_dart_stream_offset =
- 0x400;
+ 0x408;
static constexpr dart::compiler::target::word
AOT_Thread_dispatch_table_array_offset = 0x2c;
static constexpr dart::compiler::target::word
- AOT_Thread_double_truncate_round_supported_offset = 0x3cc;
+ AOT_Thread_double_truncate_round_supported_offset = 0x3d4;
static constexpr dart::compiler::target::word
- AOT_Thread_service_extension_stream_offset = 0x404;
+ AOT_Thread_service_extension_stream_offset = 0x40c;
static constexpr dart::compiler::target::word AOT_Thread_optimize_entry_offset =
0x120;
static constexpr dart::compiler::target::word AOT_Thread_optimize_stub_offset =
@@ -17589,19 +17589,19 @@
static constexpr dart::compiler::target::word AOT_Thread_top_resource_offset =
0x10;
static constexpr dart::compiler::target::word
- AOT_Thread_unboxed_runtime_arg_offset = 0x3d0;
+ AOT_Thread_unboxed_runtime_arg_offset = 0x3d8;
static constexpr dart::compiler::target::word AOT_Thread_vm_tag_offset = 0x314;
static constexpr dart::compiler::target::word
AOT_Thread_write_barrier_entry_point_offset = 0xf0;
static constexpr dart::compiler::target::word
AOT_Thread_write_barrier_mask_offset = 0x20;
static constexpr dart::compiler::target::word AOT_Thread_next_task_id_offset =
- 0x3e0;
-static constexpr dart::compiler::target::word AOT_Thread_random_offset = 0x3e8;
+ 0x3e8;
+static constexpr dart::compiler::target::word AOT_Thread_random_offset = 0x3f0;
static constexpr dart::compiler::target::word
AOT_Thread_jump_to_frame_entry_point_offset = 0x12c;
static constexpr dart::compiler::target::word AOT_Thread_tsan_utils_offset =
- 0x3f0;
+ 0x3f8;
static constexpr dart::compiler::target::word
AOT_TsanUtils_setjmp_function_offset = 0x0;
static constexpr dart::compiler::target::word
@@ -18183,7 +18183,7 @@
static constexpr dart::compiler::target::word
AOT_Thread_allocate_object_slow_entry_point_offset = 0x218;
static constexpr dart::compiler::target::word AOT_Thread_api_top_scope_offset =
- 0x7a8;
+ 0x7b8;
static constexpr dart::compiler::target::word
AOT_Thread_async_exception_handler_stub_offset = 0x148;
static constexpr dart::compiler::target::word
@@ -18199,13 +18199,13 @@
static constexpr dart::compiler::target::word
AOT_Thread_call_to_runtime_stub_offset = 0xc0;
static constexpr dart::compiler::target::word AOT_Thread_dart_stream_offset =
- 0x7f8;
+ 0x808;
static constexpr dart::compiler::target::word
AOT_Thread_dispatch_table_array_offset = 0x58;
static constexpr dart::compiler::target::word
- AOT_Thread_double_truncate_round_supported_offset = 0x7b0;
+ AOT_Thread_double_truncate_round_supported_offset = 0x7c0;
static constexpr dart::compiler::target::word
- AOT_Thread_service_extension_stream_offset = 0x800;
+ AOT_Thread_service_extension_stream_offset = 0x810;
static constexpr dart::compiler::target::word AOT_Thread_optimize_entry_offset =
0x240;
static constexpr dart::compiler::target::word AOT_Thread_optimize_stub_offset =
@@ -18376,19 +18376,19 @@
static constexpr dart::compiler::target::word AOT_Thread_top_resource_offset =
0x20;
static constexpr dart::compiler::target::word
- AOT_Thread_unboxed_runtime_arg_offset = 0x7b8;
+ AOT_Thread_unboxed_runtime_arg_offset = 0x7c8;
static constexpr dart::compiler::target::word AOT_Thread_vm_tag_offset = 0x640;
static constexpr dart::compiler::target::word
AOT_Thread_write_barrier_entry_point_offset = 0x1e0;
static constexpr dart::compiler::target::word
AOT_Thread_write_barrier_mask_offset = 0x40;
static constexpr dart::compiler::target::word AOT_Thread_next_task_id_offset =
- 0x7c8;
-static constexpr dart::compiler::target::word AOT_Thread_random_offset = 0x7d0;
+ 0x7d8;
+static constexpr dart::compiler::target::word AOT_Thread_random_offset = 0x7e0;
static constexpr dart::compiler::target::word
AOT_Thread_jump_to_frame_entry_point_offset = 0x258;
static constexpr dart::compiler::target::word AOT_Thread_tsan_utils_offset =
- 0x7d8;
+ 0x7e8;
static constexpr dart::compiler::target::word
AOT_TsanUtils_setjmp_function_offset = 0x0;
static constexpr dart::compiler::target::word
@@ -18977,7 +18977,7 @@
static constexpr dart::compiler::target::word
AOT_Thread_allocate_object_slow_entry_point_offset = 0x218;
static constexpr dart::compiler::target::word AOT_Thread_api_top_scope_offset =
- 0x7f0;
+ 0x800;
static constexpr dart::compiler::target::word
AOT_Thread_async_exception_handler_stub_offset = 0x148;
static constexpr dart::compiler::target::word
@@ -18993,13 +18993,13 @@
static constexpr dart::compiler::target::word
AOT_Thread_call_to_runtime_stub_offset = 0xc0;
static constexpr dart::compiler::target::word AOT_Thread_dart_stream_offset =
- 0x840;
+ 0x850;
static constexpr dart::compiler::target::word
AOT_Thread_dispatch_table_array_offset = 0x58;
static constexpr dart::compiler::target::word
- AOT_Thread_double_truncate_round_supported_offset = 0x7f8;
+ AOT_Thread_double_truncate_round_supported_offset = 0x808;
static constexpr dart::compiler::target::word
- AOT_Thread_service_extension_stream_offset = 0x848;
+ AOT_Thread_service_extension_stream_offset = 0x858;
static constexpr dart::compiler::target::word AOT_Thread_optimize_entry_offset =
0x240;
static constexpr dart::compiler::target::word AOT_Thread_optimize_stub_offset =
@@ -19170,19 +19170,19 @@
static constexpr dart::compiler::target::word AOT_Thread_top_resource_offset =
0x20;
static constexpr dart::compiler::target::word
- AOT_Thread_unboxed_runtime_arg_offset = 0x800;
+ AOT_Thread_unboxed_runtime_arg_offset = 0x810;
static constexpr dart::compiler::target::word AOT_Thread_vm_tag_offset = 0x688;
static constexpr dart::compiler::target::word
AOT_Thread_write_barrier_entry_point_offset = 0x1e0;
static constexpr dart::compiler::target::word
AOT_Thread_write_barrier_mask_offset = 0x40;
static constexpr dart::compiler::target::word AOT_Thread_next_task_id_offset =
- 0x810;
-static constexpr dart::compiler::target::word AOT_Thread_random_offset = 0x818;
+ 0x820;
+static constexpr dart::compiler::target::word AOT_Thread_random_offset = 0x828;
static constexpr dart::compiler::target::word
AOT_Thread_jump_to_frame_entry_point_offset = 0x258;
static constexpr dart::compiler::target::word AOT_Thread_tsan_utils_offset =
- 0x820;
+ 0x830;
static constexpr dart::compiler::target::word
AOT_TsanUtils_setjmp_function_offset = 0x0;
static constexpr dart::compiler::target::word
@@ -19767,7 +19767,7 @@
static constexpr dart::compiler::target::word
AOT_Thread_allocate_object_slow_entry_point_offset = 0x220;
static constexpr dart::compiler::target::word AOT_Thread_api_top_scope_offset =
- 0x7b0;
+ 0x7c0;
static constexpr dart::compiler::target::word
AOT_Thread_async_exception_handler_stub_offset = 0x150;
static constexpr dart::compiler::target::word
@@ -19783,13 +19783,13 @@
static constexpr dart::compiler::target::word
AOT_Thread_call_to_runtime_stub_offset = 0xc8;
static constexpr dart::compiler::target::word AOT_Thread_dart_stream_offset =
- 0x800;
+ 0x810;
static constexpr dart::compiler::target::word
AOT_Thread_dispatch_table_array_offset = 0x60;
static constexpr dart::compiler::target::word
- AOT_Thread_double_truncate_round_supported_offset = 0x7b8;
+ AOT_Thread_double_truncate_round_supported_offset = 0x7c8;
static constexpr dart::compiler::target::word
- AOT_Thread_service_extension_stream_offset = 0x808;
+ AOT_Thread_service_extension_stream_offset = 0x818;
static constexpr dart::compiler::target::word AOT_Thread_optimize_entry_offset =
0x248;
static constexpr dart::compiler::target::word AOT_Thread_optimize_stub_offset =
@@ -19960,7 +19960,7 @@
static constexpr dart::compiler::target::word AOT_Thread_top_resource_offset =
0x20;
static constexpr dart::compiler::target::word
- AOT_Thread_unboxed_runtime_arg_offset = 0x7c0;
+ AOT_Thread_unboxed_runtime_arg_offset = 0x7d0;
static constexpr dart::compiler::target::word AOT_Thread_vm_tag_offset = 0x648;
static constexpr dart::compiler::target::word
AOT_Thread_write_barrier_entry_point_offset = 0x1e8;
@@ -19969,12 +19969,12 @@
static constexpr dart::compiler::target::word AOT_Thread_heap_base_offset =
0x48;
static constexpr dart::compiler::target::word AOT_Thread_next_task_id_offset =
- 0x7d0;
-static constexpr dart::compiler::target::word AOT_Thread_random_offset = 0x7d8;
+ 0x7e0;
+static constexpr dart::compiler::target::word AOT_Thread_random_offset = 0x7e8;
static constexpr dart::compiler::target::word
AOT_Thread_jump_to_frame_entry_point_offset = 0x260;
static constexpr dart::compiler::target::word AOT_Thread_tsan_utils_offset =
- 0x7e0;
+ 0x7f0;
static constexpr dart::compiler::target::word
AOT_TsanUtils_setjmp_function_offset = 0x0;
static constexpr dart::compiler::target::word
@@ -20557,7 +20557,7 @@
static constexpr dart::compiler::target::word
AOT_Thread_allocate_object_slow_entry_point_offset = 0x220;
static constexpr dart::compiler::target::word AOT_Thread_api_top_scope_offset =
- 0x7f8;
+ 0x808;
static constexpr dart::compiler::target::word
AOT_Thread_async_exception_handler_stub_offset = 0x150;
static constexpr dart::compiler::target::word
@@ -20573,13 +20573,13 @@
static constexpr dart::compiler::target::word
AOT_Thread_call_to_runtime_stub_offset = 0xc8;
static constexpr dart::compiler::target::word AOT_Thread_dart_stream_offset =
- 0x848;
+ 0x858;
static constexpr dart::compiler::target::word
AOT_Thread_dispatch_table_array_offset = 0x60;
static constexpr dart::compiler::target::word
- AOT_Thread_double_truncate_round_supported_offset = 0x800;
+ AOT_Thread_double_truncate_round_supported_offset = 0x810;
static constexpr dart::compiler::target::word
- AOT_Thread_service_extension_stream_offset = 0x850;
+ AOT_Thread_service_extension_stream_offset = 0x860;
static constexpr dart::compiler::target::word AOT_Thread_optimize_entry_offset =
0x248;
static constexpr dart::compiler::target::word AOT_Thread_optimize_stub_offset =
@@ -20750,7 +20750,7 @@
static constexpr dart::compiler::target::word AOT_Thread_top_resource_offset =
0x20;
static constexpr dart::compiler::target::word
- AOT_Thread_unboxed_runtime_arg_offset = 0x808;
+ AOT_Thread_unboxed_runtime_arg_offset = 0x818;
static constexpr dart::compiler::target::word AOT_Thread_vm_tag_offset = 0x690;
static constexpr dart::compiler::target::word
AOT_Thread_write_barrier_entry_point_offset = 0x1e8;
@@ -20759,12 +20759,12 @@
static constexpr dart::compiler::target::word AOT_Thread_heap_base_offset =
0x48;
static constexpr dart::compiler::target::word AOT_Thread_next_task_id_offset =
- 0x818;
-static constexpr dart::compiler::target::word AOT_Thread_random_offset = 0x820;
+ 0x828;
+static constexpr dart::compiler::target::word AOT_Thread_random_offset = 0x830;
static constexpr dart::compiler::target::word
AOT_Thread_jump_to_frame_entry_point_offset = 0x260;
static constexpr dart::compiler::target::word AOT_Thread_tsan_utils_offset =
- 0x828;
+ 0x838;
static constexpr dart::compiler::target::word
AOT_TsanUtils_setjmp_function_offset = 0x0;
static constexpr dart::compiler::target::word
@@ -21348,7 +21348,7 @@
static constexpr dart::compiler::target::word
AOT_Thread_allocate_object_slow_entry_point_offset = 0x10c;
static constexpr dart::compiler::target::word AOT_Thread_api_top_scope_offset =
- 0x3f0;
+ 0x3f8;
static constexpr dart::compiler::target::word
AOT_Thread_async_exception_handler_stub_offset = 0xa4;
static constexpr dart::compiler::target::word
@@ -21364,13 +21364,13 @@
static constexpr dart::compiler::target::word
AOT_Thread_call_to_runtime_stub_offset = 0x60;
static constexpr dart::compiler::target::word AOT_Thread_dart_stream_offset =
- 0x428;
+ 0x430;
static constexpr dart::compiler::target::word
AOT_Thread_dispatch_table_array_offset = 0x2c;
static constexpr dart::compiler::target::word
- AOT_Thread_double_truncate_round_supported_offset = 0x3f4;
+ AOT_Thread_double_truncate_round_supported_offset = 0x3fc;
static constexpr dart::compiler::target::word
- AOT_Thread_service_extension_stream_offset = 0x42c;
+ AOT_Thread_service_extension_stream_offset = 0x434;
static constexpr dart::compiler::target::word AOT_Thread_optimize_entry_offset =
0x120;
static constexpr dart::compiler::target::word AOT_Thread_optimize_stub_offset =
@@ -21541,19 +21541,19 @@
static constexpr dart::compiler::target::word AOT_Thread_top_resource_offset =
0x10;
static constexpr dart::compiler::target::word
- AOT_Thread_unboxed_runtime_arg_offset = 0x3f8;
+ AOT_Thread_unboxed_runtime_arg_offset = 0x400;
static constexpr dart::compiler::target::word AOT_Thread_vm_tag_offset = 0x33c;
static constexpr dart::compiler::target::word
AOT_Thread_write_barrier_entry_point_offset = 0xf0;
static constexpr dart::compiler::target::word
AOT_Thread_write_barrier_mask_offset = 0x20;
static constexpr dart::compiler::target::word AOT_Thread_next_task_id_offset =
- 0x408;
-static constexpr dart::compiler::target::word AOT_Thread_random_offset = 0x410;
+ 0x410;
+static constexpr dart::compiler::target::word AOT_Thread_random_offset = 0x418;
static constexpr dart::compiler::target::word
AOT_Thread_jump_to_frame_entry_point_offset = 0x12c;
static constexpr dart::compiler::target::word AOT_Thread_tsan_utils_offset =
- 0x418;
+ 0x420;
static constexpr dart::compiler::target::word
AOT_TsanUtils_setjmp_function_offset = 0x0;
static constexpr dart::compiler::target::word
@@ -22136,7 +22136,7 @@
static constexpr dart::compiler::target::word
AOT_Thread_allocate_object_slow_entry_point_offset = 0x218;
static constexpr dart::compiler::target::word AOT_Thread_api_top_scope_offset =
- 0x7e0;
+ 0x7f0;
static constexpr dart::compiler::target::word
AOT_Thread_async_exception_handler_stub_offset = 0x148;
static constexpr dart::compiler::target::word
@@ -22152,13 +22152,13 @@
static constexpr dart::compiler::target::word
AOT_Thread_call_to_runtime_stub_offset = 0xc0;
static constexpr dart::compiler::target::word AOT_Thread_dart_stream_offset =
- 0x830;
+ 0x840;
static constexpr dart::compiler::target::word
AOT_Thread_dispatch_table_array_offset = 0x58;
static constexpr dart::compiler::target::word
- AOT_Thread_double_truncate_round_supported_offset = 0x7e8;
+ AOT_Thread_double_truncate_round_supported_offset = 0x7f8;
static constexpr dart::compiler::target::word
- AOT_Thread_service_extension_stream_offset = 0x838;
+ AOT_Thread_service_extension_stream_offset = 0x848;
static constexpr dart::compiler::target::word AOT_Thread_optimize_entry_offset =
0x240;
static constexpr dart::compiler::target::word AOT_Thread_optimize_stub_offset =
@@ -22329,19 +22329,19 @@
static constexpr dart::compiler::target::word AOT_Thread_top_resource_offset =
0x20;
static constexpr dart::compiler::target::word
- AOT_Thread_unboxed_runtime_arg_offset = 0x7f0;
+ AOT_Thread_unboxed_runtime_arg_offset = 0x800;
static constexpr dart::compiler::target::word AOT_Thread_vm_tag_offset = 0x678;
static constexpr dart::compiler::target::word
AOT_Thread_write_barrier_entry_point_offset = 0x1e0;
static constexpr dart::compiler::target::word
AOT_Thread_write_barrier_mask_offset = 0x40;
static constexpr dart::compiler::target::word AOT_Thread_next_task_id_offset =
- 0x800;
-static constexpr dart::compiler::target::word AOT_Thread_random_offset = 0x808;
+ 0x810;
+static constexpr dart::compiler::target::word AOT_Thread_random_offset = 0x818;
static constexpr dart::compiler::target::word
AOT_Thread_jump_to_frame_entry_point_offset = 0x258;
static constexpr dart::compiler::target::word AOT_Thread_tsan_utils_offset =
- 0x810;
+ 0x820;
static constexpr dart::compiler::target::word
AOT_TsanUtils_setjmp_function_offset = 0x0;
static constexpr dart::compiler::target::word
diff --git a/runtime/vm/runtime_entry.cc b/runtime/vm/runtime_entry.cc
index c4700db..f32d70f 100644
--- a/runtime/vm/runtime_entry.cc
+++ b/runtime/vm/runtime_entry.cc
@@ -4872,10 +4872,20 @@
#endif
#if !defined(USING_THREAD_SANITIZER)
-extern "C" void __tsan_acquire(void* addr) {
+extern "C" uint32_t __tsan_atomic32_load(uint32_t* addr, int order) {
UNREACHABLE();
}
-extern "C" void __tsan_release(void* addr) {
+extern "C" void __tsan_atomic32_store(uint32_t* addr,
+ uint32_t value,
+ int order) {
+ UNREACHABLE();
+}
+extern "C" uint64_t __tsan_atomic64_load(uint64_t* addr, int order) {
+ UNREACHABLE();
+}
+extern "C" void __tsan_atomic64_store(uint64_t* addr,
+ uint64_t value,
+ int order) {
UNREACHABLE();
}
#endif
@@ -4885,7 +4895,9 @@
DEFINE_LEAF_RUNTIME_ENTRY(MsanUnpoison, 2, __msan_unpoison);
DEFINE_LEAF_RUNTIME_ENTRY(MsanUnpoisonParam, 1, __msan_unpoison_param);
-DEFINE_LEAF_RUNTIME_ENTRY(TsanLoadAcquire, 1, __tsan_acquire);
-DEFINE_LEAF_RUNTIME_ENTRY(TsanStoreRelease, 1, __tsan_release);
+DEFINE_LEAF_RUNTIME_ENTRY(TsanAtomic32Load, 2, __tsan_atomic32_load);
+DEFINE_LEAF_RUNTIME_ENTRY(TsanAtomic32Store, 3, __tsan_atomic32_store);
+DEFINE_LEAF_RUNTIME_ENTRY(TsanAtomic64Load, 2, __tsan_atomic64_load);
+DEFINE_LEAF_RUNTIME_ENTRY(TsanAtomic64Store, 3, __tsan_atomic64_store);
} // namespace dart
diff --git a/runtime/vm/runtime_entry_list.h b/runtime/vm/runtime_entry_list.h
index 7a4bda2..5e4b166 100644
--- a/runtime/vm/runtime_entry_list.h
+++ b/runtime/vm/runtime_entry_list.h
@@ -127,8 +127,10 @@
V(void, PropagateError, Dart_Handle) \
V(void, MsanUnpoison, void*, size_t) \
V(void, MsanUnpoisonParam, size_t) \
- V(void, TsanLoadAcquire, void*) \
- V(void, TsanStoreRelease, void*) \
+ V(uint32_t, TsanAtomic32Load, void*, int) \
+ V(void, TsanAtomic32Store, void*, uint32_t, int) \
+ V(uint64_t, TsanAtomic64Load, void*, int) \
+ V(void, TsanAtomic64Store, void*, uint64_t, int) \
V(bool, TryDoubleAsInteger, Thread*) \
V(void*, MemoryMove, void*, const void*, size_t)