]>
Commit | Line | Data |
---|---|---|
fa0cbd5a HPN |
1 | # mach: crisv32 |
2 | # ld: -N --oformat binary --section-start=.text=0x10000000 | |
3 | # sim: --architecture crisv32 --target binary --cris-program-offset=0x10000000 --cris-start-address=0x10000040 --cris-naked --memory-region 0x10000000,0x1000 | |
4 | .include "testutils.inc" | |
5 | ||
6 | ; Test that we can load a binary program at a non-zero address. | |
7 | ; Also serves to exercise the --cris-program-offset and | |
8 | ; --cris-start-address options. | |
9 | ||
10 | ; Make sure starting at the first address does fail. | |
11 | fail | |
12 | ||
13 | ; ...and that we know an offset we can jump for it to work, and all we | |
14 | ; have to assume is that "fail" takes no more than 64 bytes. | |
15 | .p2align 6 | |
16 | ba _start | |
17 | nop | |
18 | ||
19 | ; | |
20 | start | |
21 | x: | |
22 | ||
23 | ; Make sure we're loaded at the linked address. Since we're re-used | |
24 | ; in other tests, we have to provide for non-v32 as well. | |
25 | .if ..asm.arch.cris.v32 | |
26 | lapcq .,$r0 | |
27 | .else | |
28 | move.d $pc,$r0 | |
29 | subq .-x,$r0 | |
30 | .endif | |
31 | ||
32 | cmp.d x,$r0 | |
33 | bne y | |
34 | nop | |
35 | pass | |
36 | y: | |
37 | fail | |
38 | ||
39 | ; Make sure we have enough contents for the mapping. | |
40 | .data | |
41 | .fill 4096,1,0 |