[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>
Sat, 15 Aug 2020 19:53:41 +0000 (20:53 +0100)
commit6b3e59b76b32ba63da8cc0e86a047027bb6873c5
tree16d00e7c1101c0660cecd3e0820bac890d051393
parentd1540aa79c6ff5d226099542c9fcd408faadb315
[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