old-cross-binutils/ld/testsuite/ld-m68hc11/relax-direct.s
Stephane Carrez 19dd1b4833 * ld-m68hc11/m68hc11.exp: Specific tests for 68HC11/68HC12.
* ld-m68hc11/adj-jump.d: New test for linker relaxation.
	* ld-m68hc11/adj-jump.s: Likewise.
	* ld-m68hc11/adj-brset.s: Likewise.
	* ld-m68hc11/adj-brset.d: Likewise.
	* ld-m68hc11/relax-direct.s: Likewise.
	* ld-m68hc11/relax-direct.d: Likewise.
	* ld-m68hc11/relax-group.s: Likewise.
	* ld-m68hc11/relax-group.d: Likewise.
	* ld-m68hc11/bug-1403.d: Likewise.
	* ld-m68hc11/bug-1403.s: Likewise.
2002-10-14 21:20:16 +00:00

84 lines
1.3 KiB
ArmAsm

;;; Test 68HC11 linker relaxation from extended addressing to direct
;;; addressing modes
;;;
.sect .text
.globl _start
_start:
start:
lds stack
ldd _bar
beq F1
beq F2
std _bar
jsr _bar
F1:
addd _toto
bne start
;; All the following instructions will be relaxed and win 1 byte
;; for each.
addd _toto+200
addd stack+256-20
adca _table+2
adcb _table+3
adda _table+4
addb _table+5
addd _table+6
anda _table+7
andb _table+8
cmpa _table+9
cmpb _table+10
cpd _table+11
cpx _table+12
cpy _table+13
eora _table+14
eorb _table+15
jsr _table+16
ldaa _table+17
ldab _table+18
ldd _table+19
lds _table+20
ldx _table+21
ldy _table+22
oraa _table+23
orab _table+24
sbcb _table+25
sbca _table+26
staa _table+27
stab _table+28
std _table+29
sts _table+30
stx _table+31
sty _table+32
suba _table+33
subb _table+34
subd _table+35
;; 'bne' is assembled as far branch and must relax to
;; a relative 8-bit branch.
bne _start
;; Likewise for next branch
bra F1
rts
;;; The following instructions will not be relaxed
no_relax:
addd _stack_top+60
std _stack_top+40
;; 'tst' does not support direct addressing mode.
tst _toto+1
bne no_relax
.skip 200
F2:
bra _start
.sect .page0
_bar:
.long 0
_toto:
.long 0
.skip 32
stack:
.skip 10
_table:
.skip 200
_stack_top: