Upload Tizen:Base source
[external/binutils.git] / ld / testsuite / ld-m68hc11 / adj-jump.s
1 ;;; Test 68HC11 linker relaxation and fixup of bcc/bra branches
2 ;;; 
3         .sect .text
4         .globl _start
5 _start:
6         ;; Next 'bra' is assembled as a 'jmp'.  It is relaxed to 'bra L3'
7         ;; during a second pass of relax.
8         bra     L3
9         .skip   20
10         ;; Next 'jmp' must be relaxed to a 'bra' during the first pass.
11         ;; The branch offset must then be adjusted by consecutive relax.
12         jmp     L3
13 L1:
14         addd    0,x
15         bne     L1              ; Branch not adjusted
16         addd    _toto
17         beq     L1              ; Backward branch, adjust -1
18         addd    _toto+1
19         jbne    L1              ; Backward branch, adjust -2
20         bgt     L1              ; All possible backward branchs, adjust -2
21         bge     L1
22         beq     L1
23         ble     L1
24         blt     L1
25         bhi     L1
26         bhs     L1
27         beq     L1
28         bls     L1
29         blo     L1
30         bcs     L1
31         bmi     L1
32         bvs     L1
33         bcc     L1
34         bpl     L1
35         bvc     L1
36         bne     L1
37         brn     L1
38         bra     L1
39         ;; Relax several insn to reduce block by 15
40         addd    _toto
41         addd    _toto
42         addd    _toto
43         addd    _toto
44         addd    _toto
45         addd    _toto
46         addd    _toto
47         addd    _toto
48         addd    _toto
49         addd    _toto
50         addd    _toto
51         addd    _toto
52         addd    _toto
53         addd    _toto
54         addd    _toto
55 L2:
56         jmp     _start          ; -> relax to bra _start
57         bne     L2              ; Backward branch, adjust -1
58         beq     L3              ; Forward branch, adjust -2
59         addd    _toto
60         beq     L3              ; Forward branch, adjust -1
61         addd    _toto
62 L3:
63         addd    _toto
64         rts
65
66         .sect   .page0
67 _bar:
68         .long   0
69 _toto:
70         .long   0
71         .skip   32
72 stack:
73         .skip   10
74 _table: