5 #define OR1K_ATOMIC_SWAP 1
6 #define OR1K_ATOMIC_CMPXCHG 2
7 #define OR1K_ATOMIC_XCHG 3
8 #define OR1K_ATOMIC_ADD 4
9 #define OR1K_ATOMIC_DECPOS 5
10 #define OR1K_ATOMIC_AND 6
11 #define OR1K_ATOMIC_OR 7
12 #define OR1K_ATOMIC_UMAX 8
13 #define OR1K_ATOMIC_UMIN 9
15 #include "xlat/atomic_ops.h"
19 printxval(atomic_ops, tcp->u_arg[0], "???");
20 switch(tcp->u_arg[0]) {
21 case OR1K_ATOMIC_SWAP:
22 tprintf(", 0x%lx, 0x%lx", tcp->u_arg[1], tcp->u_arg[2]);
24 case OR1K_ATOMIC_CMPXCHG:
25 tprintf(", 0x%lx, %#lx, %#lx", tcp->u_arg[1], tcp->u_arg[2],
29 case OR1K_ATOMIC_XCHG:
33 case OR1K_ATOMIC_UMAX:
34 case OR1K_ATOMIC_UMIN:
35 tprintf(", 0x%lx, %#lx", tcp->u_arg[1], tcp->u_arg[2]);
38 case OR1K_ATOMIC_DECPOS:
39 tprintf(", 0x%lx", tcp->u_arg[1]);
46 return RVAL_DECODED | RVAL_HEX;