This is an archive of the discontinued LLVM Phabricator instance.

AMDGPU: Correct definitions for global saddr instructions
ClosedPublic

Authored by arsenm on Aug 13 2020, 3:13 PM.

Details

Summary

The VGPR component is a 32-bit offset, not 64-bits.

I'm not sure what the correct syntax is for this. This maintains the
vaddr position and leaves saddr in the end "off" position. This is
particularly terrible for stores, since the operand order is now <vgpr
offset>, <data>, <sgpr base>, splitting the pointer operands. I
suppose this is a logical consequence from the mistake of not putting
the data operand first. I'm not sure what sp3 does.

Diff Detail

Event Timeline

arsenm created this revision.Aug 13 2020, 3:13 PM
Herald added a project: Restricted Project. · View Herald TranscriptAug 13 2020, 3:13 PM
arsenm requested review of this revision.Aug 13 2020, 3:13 PM
arsenm updated this revision to Diff 285518.Aug 13 2020, 4:12 PM

Fix disassembler tests

rampitec accepted this revision.Aug 13 2020, 4:50 PM

LGTM.

This revision is now accepted and ready to land.Aug 13 2020, 4:50 PM
dp accepted this revision.Aug 14 2020, 5:27 AM

LGTM.
The syntax is terrible but at least it is sp3-compatible.