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 21x: 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 36y: 37 fail 38 39; Make sure we have enough contents for the mapping. 40 .data 41 .fill 4096,1,0 42