mirror of
https://github.com/shadps4-emu/shadPS4.git
synced 2025-08-02 15:32:52 +00:00
clang
This commit is contained in:
parent
19e6698578
commit
16cf666e1d
@ -122,9 +122,7 @@ void Translator::DS_ADD_U32(const GcnInst& inst) {
|
|||||||
const IR::U32 offset = ir.Imm32(u32(inst.control.ds.offset0));
|
const IR::U32 offset = ir.Imm32(u32(inst.control.ds.offset0));
|
||||||
const IR::U32 addr_offset = ir.IAdd(addr, offset);
|
const IR::U32 addr_offset = ir.IAdd(addr, offset);
|
||||||
IR::VectorReg dst_reg{inst.dst[0].code};
|
IR::VectorReg dst_reg{inst.dst[0].code};
|
||||||
|
|
||||||
const IR::Value original_val = ir.SharedAtomicIAdd(addr_offset, data);
|
const IR::Value original_val = ir.SharedAtomicIAdd(addr_offset, data);
|
||||||
|
|
||||||
SetDst(inst.dst[0], IR::U32{original_val});
|
SetDst(inst.dst[0], IR::U32{original_val});
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -134,9 +132,7 @@ void Translator::DS_MIN_U32(const GcnInst& inst) {
|
|||||||
const IR::U32 offset = ir.Imm32(u32(inst.control.ds.offset0));
|
const IR::U32 offset = ir.Imm32(u32(inst.control.ds.offset0));
|
||||||
const IR::U32 addr_offset = ir.IAdd(addr, offset);
|
const IR::U32 addr_offset = ir.IAdd(addr, offset);
|
||||||
IR::VectorReg dst_reg{inst.dst[0].code};
|
IR::VectorReg dst_reg{inst.dst[0].code};
|
||||||
|
|
||||||
const IR::Value original_val = ir.SharedAtomicIMin(addr_offset, data, false);
|
const IR::Value original_val = ir.SharedAtomicIMin(addr_offset, data, false);
|
||||||
|
|
||||||
SetDst(inst.dst[0], IR::U32{original_val});
|
SetDst(inst.dst[0], IR::U32{original_val});
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -146,9 +142,7 @@ void Translator::DS_MAX_U32(const GcnInst& inst) {
|
|||||||
const IR::U32 offset = ir.Imm32(u32(inst.control.ds.offset0));
|
const IR::U32 offset = ir.Imm32(u32(inst.control.ds.offset0));
|
||||||
const IR::U32 addr_offset = ir.IAdd(addr, offset);
|
const IR::U32 addr_offset = ir.IAdd(addr, offset);
|
||||||
IR::VectorReg dst_reg{inst.dst[0].code};
|
IR::VectorReg dst_reg{inst.dst[0].code};
|
||||||
|
|
||||||
const IR::Value original_val = ir.SharedAtomicIMax(addr_offset, data, false);
|
const IR::Value original_val = ir.SharedAtomicIMax(addr_offset, data, false);
|
||||||
|
|
||||||
SetDst(inst.dst[0], IR::U32{original_val});
|
SetDst(inst.dst[0], IR::U32{original_val});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -470,7 +470,8 @@ void Translator::BUFFER_ATOMIC(u32 num_dwords, AtomicOp op, const GcnInst& inst)
|
|||||||
ir.GetScalarReg(srsrc + 2), ir.GetScalarReg(srsrc + 3));
|
ir.GetScalarReg(srsrc + 2), ir.GetScalarReg(srsrc + 3));
|
||||||
|
|
||||||
// Apply atomic op
|
// Apply atomic op
|
||||||
// derefs srsrc buffer and adds vdata value to it, then returns
|
// derefs srsrc buffer and adds vdata value to it
|
||||||
|
// then returns original srsrc buffer value
|
||||||
const IR::Value original_val = ir.BufferAtomicIAdd(handle, address, vdata_val, info);
|
const IR::Value original_val = ir.BufferAtomicIAdd(handle, address, vdata_val, info);
|
||||||
|
|
||||||
if (mubuf.glc) {
|
if (mubuf.glc) {
|
||||||
|
Loading…
Reference in New Issue
Block a user