Import binutils 2.18
[nacl-binutils.git] / ld / testsuite / ld-m68hc11 / relax-direct.s
blobf4497726e8cdfb6494ab745d6c223eefca7847e9
1 ;;; Test 68HC11 linker relaxation from extended addressing to direct
2 ;;; addressing modes
3 ;;;
4 .sect .text
5 .globl _start
6 _start:
7 start:
8 lds stack
9 ldd _bar
10 beq F1
11 beq F2
12 std _bar
13 jsr _bar
14 F1:
15 addd _toto
16 bne start
17 ;; All the following instructions will be relaxed and win 1 byte
18 ;; for each.
19 addd _toto+200
20 addd stack+256-20
21 adca _table+2
22 adcb _table+3
23 adda _table+4
24 addb _table+5
25 addd _table+6
26 anda _table+7
27 andb _table+8
28 cmpa _table+9
29 cmpb _table+10
30 cpd _table+11
31 cpx _table+12
32 cpy _table+13
33 eora _table+14
34 eorb _table+15
35 jsr _table+16
36 ldaa _table+17
37 ldab _table+18
38 ldd _table+19
39 lds _table+20
40 ldx _table+21
41 ldy _table+22
42 oraa _table+23
43 orab _table+24
44 sbcb _table+25
45 sbca _table+26
46 staa _table+27
47 stab _table+28
48 std _table+29
49 sts _table+30
50 stx _table+31
51 sty _table+32
52 suba _table+33
53 subb _table+34
54 subd _table+35
55 ;; 'bne' is assembled as far branch and must relax to
56 ;; a relative 8-bit branch.
57 bne _start
58 ;; Likewise for next branch
59 bra F1
60 rts
62 ;;; The following instructions will not be relaxed
63 no_relax:
64 addd _stack_top+60
65 std _stack_top+40
66 ;; 'tst' does not support direct addressing mode.
67 tst _toto+1
68 bne no_relax
69 .skip 200
70 F2:
71 bra _start
73 .sect .page0
74 _bar:
75 .long 0
76 _toto:
77 .long 0
78 .skip 32
79 stack:
80 .skip 10
81 _table:
82 .skip 200
83 _stack_top: