[mips64][compiler] Fix kAtomicLoadWord32

Allows atomic loading of an unsigned 32bit value from 64bit widths.

Bug: v8:12093
Change-Id: Ib6ca2f3f44d4e82e5e41bf1ca0494e48ca90a21a
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3096888
Reviewed-by: Zhao Jiazhong <zhaojiazhong-hf@loongson.cn>
Commit-Queue: Zhao Jiazhong <zhaojiazhong-hf@loongson.cn>
Auto-Submit: Liu yu <liuyu@loongson.cn>
Cr-Commit-Position: refs/heads/master@{#76307}
This commit is contained in:
Liu Yu 2021-08-16 19:00:06 +08:00 committed by V8 LUCI CQ
parent 4424ac4b57
commit c149551809

View File

@ -1883,7 +1883,10 @@ CodeGenerator::CodeGenResult CodeGenerator::AssembleArchInstruction(
ASSEMBLE_ATOMIC_LOAD_INTEGER(Lhu); ASSEMBLE_ATOMIC_LOAD_INTEGER(Lhu);
break; break;
case kAtomicLoadWord32: case kAtomicLoadWord32:
ASSEMBLE_ATOMIC_LOAD_INTEGER(Lw); if (AtomicWidthField::decode(opcode) == AtomicWidth::kWord32)
ASSEMBLE_ATOMIC_LOAD_INTEGER(Lw);
else
ASSEMBLE_ATOMIC_LOAD_INTEGER(Lwu);
break; break;
case kMips64Word64AtomicLoadUint64: case kMips64Word64AtomicLoadUint64:
ASSEMBLE_ATOMIC_LOAD_INTEGER(Ld); ASSEMBLE_ATOMIC_LOAD_INTEGER(Ld);