Commit | Line | Data |
---|---|---|
19dd1b48 SC |
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 | |
61 | ||
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 | |
72 | ||
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: | |
84 |