This is an archive of the discontinued LLVM Phabricator instance.

MIPS32r6 Floating Point Compare setting Mask - CMP.condn.fmt
ClosedPublic

Authored by zoran.jovanovic on May 13 2014, 3:27 PM.

Details

Summary

Implemented CMP.condn.fmt instructions:
cmp.f.s, cmp.f.d, cmp.un.s, cmp.un.d, cmp.eq.s, cmp.eq.d, cmp.ueq.s, cmp.ueq.d, cmp.olt.s, cmp.olt.d, cmp.ult.s, cmp.ult.d,
cmp.ole.s, cmp.ole.d, cmp.ule.s, cmp.ule.d, cmp.sf.s, cmp.sf.d, cmp.ngle.s, cmp.ngle.d, cmp.seq.s, cmp.seq.d, cmp.ngl.s,
cmp.ngl.d, cmp.lt.s, cmp.lt.d, cmp.nge.s, cmp.nge.d, cmp.le.s, cmp.le.d, cmp.ngt.s, cmp.ngt.d.

Diff Detail

Event Timeline

zoran.jovanovic retitled this revision from to MIPS32r6 Floating Point Compare setting Mask - CMP.condn.fmt.
zoran.jovanovic updated this object.
zoran.jovanovic edited the test plan for this revision. (Show Details)
zoran.jovanovic added reviewers: dsanders, vmedic.
zoran.jovanovic added a subscriber: jkolek.
dsanders accepted this revision.May 14 2014, 6:52 AM
dsanders edited edge metadata.

LGTM with a couple nits

lib/Target/Mips/Mips32r6InstrFormats.td
105

You could use OPGROUP_COP1.Value here.

113

No newline at EOF

lib/Target/Mips/Mips32r6InstrInfo.td
204

FGR32Opnd is incorrect but is consistent with the rest of the FPU implementation (which is also incorrect). The issue is that single-precision operations still act as if they write 64-bit values but bits 63-32 are unpredictable.

No change required for this patch. I only mention it for the sake of completeness.

This revision is now accepted and ready to land.May 14 2014, 6:52 AM

Committed revision 208970.