/* * Test the TEST AND SET instruction. * * SPDX-License-Identifier: GPL-2.0-or-later */ #include #include static int ts(char *p) { int cc; asm("ts %[p]\n" "ipm %[cc]" : [cc] "=r" (cc) , [p] "+Q" (*p) : : "cc"); return (cc >> 28) & 3; } int main(void) { char c; c = 0x80; assert(ts(&c) == 1); assert(c == 0xff); c = 0x7f; assert(ts(&c) == 0); assert(c == 0xff); return EXIT_SUCCESS; }