master
c 21 lines 464 Bytes
Raw
1 /*
2 * Test the LARL instruction.
3 *
4 * SPDX-License-Identifier: GPL-2.0-or-later
5 */
6 #include <stdlib.h>
7
8 int main(void)
9 {
10 long algfi = (long)main;
11 long larl;
12
13 /*
14 * The compiler may emit larl for the C addition, so compute the expected
15 * value using algfi.
16 */
17 asm("algfi %[r],0xd0000000" : [r] "+r" (algfi) : : "cc");
18 asm("larl %[r],main+0xd0000000" : [r] "=r" (larl));
19
20 return algfi == larl ? EXIT_SUCCESS : EXIT_FAILURE;
21 }