Change atomic operation from And to Or in IREmitter (#4612)

We used the wrong opcodes before
This commit is contained in:
Hog 2026-06-24 13:15:23 +01:00 committed by GitHub
parent 7bb1f9df7b
commit 8651fd78d8
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -372,13 +372,12 @@ U32U64 IREmitter::SharedAtomicAnd(const U32& address, const U32U64& data, bool i
U32U64 IREmitter::SharedAtomicOr(const U32& address, const U32U64& data, bool is_gds) {
switch (data.Type()) {
case Type::U32:
return Inst<U32>(Opcode::SharedAtomicAnd32, Flags{is_gds}, address, data);
return Inst<U32>(Opcode::SharedAtomicOr32, Flags{is_gds}, address, data);
case Type::U64:
return Inst<U64>(Opcode::SharedAtomicAnd64, Flags{is_gds}, address, data);
return Inst<U64>(Opcode::SharedAtomicOr64, Flags{is_gds}, address, data);
default:
ThrowInvalidType(data.Type());
}
return Inst<U32>(Opcode::SharedAtomicOr32, address, data);
}
U32U64 IREmitter::SharedAtomicXor(const U32& address, const U32U64& data, bool is_gds) {