annotate gcc/testsuite/gcc.target/msp430/operand-modifiers.c @ 152:2b5abeee2509

update gcc11
author anatofuz
date Mon, 25 May 2020 07:50:57 +0900
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
152
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
1 volatile unsigned long si = 0x89abcdef;
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
2 volatile unsigned long long di = 0xfedcba9876543210;
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
3
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
4 unsigned int a, b, c, d;
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
5
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
6 int
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
7 main (void)
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
8 {
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
9 /* Check that %A and %B extract the low and high words of a 32-bit value,
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
10 respectively. */
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
11 __asm__("mov %A1, %0\n" : "=m" (a) : "m" (si));
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
12 __asm__("mov %B1, %0\n" : "=m" (b) : "m" (si));
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
13 if (a != ((unsigned)si)
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
14 || b != ((unsigned)(si >> 16)))
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
15 return 1;
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
16
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
17 /* Check that %A, %B, %C and %D extract the 1st, 2nd, 3rd and 4th words of a
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
18 64-bit value, respectively. */
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
19 __asm__("mov %A1, %0\n" : "=m" (a) : "m" (di));
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
20 __asm__("mov %B1, %0\n" : "=m" (b) : "m" (di));
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
21 __asm__("mov %C1, %0\n" : "=m" (c) : "m" (di));
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
22 __asm__("mov %D1, %0\n" : "=m" (d) : "m" (di));
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
23 if (a != ((unsigned)di)
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
24 || b != ((unsigned)(di >> 16))
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
25 || c != ((unsigned)(di >> 32))
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
26 || d != ((unsigned)(di >> 48)))
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
27 return 1;
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
28
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
29 return 0;
2b5abeee2509 update gcc11
anatofuz
parents:
diff changeset
30 }