OpenCores
URL https://opencores.org/ocsvn/open8_urisc/open8_urisc/trunk

Subversion Repositories open8_urisc

[/] [open8_urisc/] [trunk/] [gnu/] [binutils/] [ld/] [testsuite/] [ld-m68hc11/] [adj-jump.s] - Blame information for rev 84

Go to most recent revision | Details | Compare with Previous | View Log

Line No. Rev Author Line
1 75 khays
;;; 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:

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.