[PATCH] [Mips] Add support for min/max/umin/umax atomics
authorMirko Brkusanin <Mirko.Brkusanin@rt-rk.com>
Thu, 12 Dec 2019 10:19:41 +0000 (11:19 +0100)
committerGianfranco Costamagna <locutusofborg@debian.org>
Tue, 25 Feb 2020 14:28:58 +0000 (14:28 +0000)
commit52c3d666482d4a8f69e70ef08efb0a17fc81ac07
tree56c2880702267ec7a9f80ad7c54ac9ad350c2969
parent473c9c61f1ce6caf8a77dcd89a842fad1cb98979
[PATCH] [Mips] Add support for min/max/umin/umax atomics

In order to properly implement these atomic we need one register more than other
binary atomics. It is used for storing result from comparing values in addition
to the one that is used for actual result of operation.

https://reviews.llvm.org/D71028

Changed-by: James Clarke <jrtc27@debian.org>
[Backported to 9 by replacing Register with unsigned]

Gbp-Pq: Name D71028-mips-rust-test.diff
llvm/lib/Target/Mips/Mips64InstrInfo.td
llvm/lib/Target/Mips/MipsExpandPseudo.cpp
llvm/lib/Target/Mips/MipsISelLowering.cpp
llvm/lib/Target/Mips/MipsInstrInfo.td
llvm/lib/Target/Mips/MipsScheduleGeneric.td
llvm/lib/Target/Mips/MipsScheduleP5600.td
llvm/test/CodeGen/Mips/atomic-min-max-64.ll [new file with mode: 0644]
llvm/test/CodeGen/Mips/atomic-min-max.ll [new file with mode: 0644]
llvm/test/CodeGen/Mips/atomic.ll