[loong64][mips64][heap] Add shared barrier to RecordWrite builtin

Port commit c5d4812196

Bug: v8:11708
Change-Id: Ia50968a169d6b13370f65d5e5fb84a8794cfe216
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3835322
Auto-Submit: Liu Yu <liuyu@loongson.cn>
Reviewed-by: Zhao Jiazhong <zhaojiazhong-hf@loongson.cn>
Commit-Queue: Zhao Jiazhong <zhaojiazhong-hf@loongson.cn>
Cr-Commit-Position: refs/heads/main@{#82510}
This commit is contained in:
Liu Yu 2022-08-17 09:58:03 +08:00 committed by V8 LUCI CQ
parent c7c9f1c364
commit 5182e6f12a
2 changed files with 7 additions and 5 deletions

View File

@ -159,8 +159,9 @@ class OutOfLineRecordWrite final : public OutOfLineCode {
} }
void Generate() final { void Generate() final {
__ CheckPageFlag(value_, MemoryChunk::kPointersToHereAreInterestingMask, eq, __ CheckPageFlag(
exit()); value_, MemoryChunk::kPointersToHereAreInterestingOrInSharedHeapMask,
eq, exit());
SaveFPRegsMode const save_fp_mode = frame()->DidAllocateDoubleRegisters() SaveFPRegsMode const save_fp_mode = frame()->DidAllocateDoubleRegisters()
? SaveFPRegsMode::kSave ? SaveFPRegsMode::kSave
: SaveFPRegsMode::kIgnore; : SaveFPRegsMode::kIgnore;

View File

@ -162,9 +162,10 @@ class OutOfLineRecordWrite final : public OutOfLineCode {
} }
void Generate() final { void Generate() final {
__ CheckPageFlag(value_, scratch0_, __ CheckPageFlag(
MemoryChunk::kPointersToHereAreInterestingMask, eq, value_, scratch0_,
exit()); MemoryChunk::kPointersToHereAreInterestingOrInSharedHeapMask, eq,
exit());
__ Daddu(scratch1_, object_, index_); __ Daddu(scratch1_, object_, index_);
SaveFPRegsMode const save_fp_mode = frame()->DidAllocateDoubleRegisters() SaveFPRegsMode const save_fp_mode = frame()->DidAllocateDoubleRegisters()
? SaveFPRegsMode::kSave ? SaveFPRegsMode::kSave