Add support for Andes NDS32:
[deliverable/binutils-gdb.git] / gas / testsuite / gas / cris / bwtest-err-1.s
CommitLineData
a471a06b
HPN
1; File bwtest-err-1.s
2
3; { dg-do assemble { target cris-*-* } }
4
5; A variant of exbwtest.s. This is an example of invalid use of the broken-
6; dot-word function. The nearest label occurs about 32 kbytes after the primary
7; jump table so the secondary jump table can't be reached by word displace-
8; ments and the broken words overflow.
9
10; main()
11; {
12; byte i;
13;
14; for (i=0; i <= 3; i++) {
15; result[i] = funct(i);
16; }
17; }
18;
19; Register use : r1 - i
20; r2 - result address
21
22 .text
0465aa2f 23 .syntax no_register_prefix
a471a06b
HPN
24 .word 0
25main: move.d stack,sp
26 moveq 0,r1
27 move.d result,r2
28for1: cmpq 3,r1
29 bgt endfor1
30 move.d r1,r0
31 jsr funct
32 move.w r0,[r2+r1.w]
33 ba for1
34 addq 1,r1
35endfor1:
36end: ba end
37 nop
38
39
40; uword funct(i)
41; byte i;
42; {
43; switch (i) {
44; case 0 : return 0x1111;
45; case 1 : return 0x2222;
46; case 2 : return 0x3333;
47; case 3 : return 0x4444;
48; }
49; }
50;
51; Parameters : r0 - i
52;
53; Register use : r1 - pjt address
54
55funct: push r1
56 move.d pjt,r1
57 adds.w [r1+r0.w],pc
58pjt: .word near1 - pjt
59 .word near2 - pjt
60 .word far1 - pjt
61 .word far2 - pjt
62
63; Note that the line-number of the source-location of the error
64; seems slightly off from the user perspective, but it's the
65; best I could get without major changes in BW-handling. Not
66; sure it it's worth fixing. May need adjustments if
67; BW-handling changes. Four errors from four .words are what's
68; expected.
69
70 .space 32760,0xFF; { dg-error "Adjusted signed \.word \(.*\) overflow.*" }
71
72near1: move.w 0x1111,r0
73 ba ret1
74 nop
75
76near2: move.w 0x2222,r0
77 ba ret1
78 nop
79
80far1: move.w 0x3333,r0
81 ba ret1
82 nop
83
84far2: move.w 0x4444,r0
85ret1: pop r1
86 ret
87
88
89result: .space 4 * 2 ; static uword result[4];
90
91 .space 4
92stack:
This page took 0.563176 seconds and 4 git commands to generate.