| The tests in sframe.exp use binary data files: |
| - test-v2-ET_EXEC.sframe.bz2 |
| - test-v2-ET_REL.sframe.bz2 |
| These files are generated using a as/ld supporting SFrame V2 sections (Binutils |
| <= 2.45). The purpose of those tests is to make sure readelf/objdump support |
| works for SFrame V2. |
| |
| The binary files are generated using the following steps. |
| |
| $ cat sort.s |
| .machinemode zarch |
| .machine "z900" |
| .text |
| .align 8 |
| .globl swapit |
| .type swapit, @function |
| swapit: |
| .cfi_startproc |
| stmg %r11,%r15,88(%r15) |
| .cfi_offset 11, -72 |
| .cfi_offset 12, -64 |
| .cfi_offset 13, -56 |
| .cfi_offset 14, -48 |
| .cfi_offset 15, -40 |
| aghi %r15,-176 |
| .cfi_def_cfa_offset 336 |
| lgr %r11,%r15 |
| .cfi_def_cfa_register 11 |
| stg %r2,168(%r11) |
| stg %r3,160(%r11) |
| lg %r1,160(%r11) |
| l %r2,0(%r1) |
| lg %r1,168(%r11) |
| st %r2,0(%r1) |
| nopr %r0 |
| lmg %r11,%r15,264(%r11) |
| .cfi_restore 15 |
| .cfi_restore 14 |
| .cfi_restore 13 |
| .cfi_restore 12 |
| .cfi_restore 11 |
| .cfi_def_cfa 15, 160 |
| br %r14 |
| .cfi_endproc |
| .size swapit, .-swapit |
| |
| .align 8 |
| .globl fake_sort |
| .type fake_sort, @function |
| fake_sort: |
| .cfi_startproc |
| stmg %r11,%r15,88(%r15) |
| .cfi_offset 11, -72 |
| .cfi_offset 12, -64 |
| .cfi_offset 13, -56 |
| .cfi_offset 14, -48 |
| .cfi_offset 15, -40 |
| aghi %r15,-176 |
| .cfi_def_cfa_offset 336 |
| lgr %r11,%r15 |
| .cfi_def_cfa_register 11 |
| stg %r2,168(%r11) |
| lgr %r1,%r3 |
| st %r1,164(%r11) |
| l %r1,164(%r11) |
| ltr %r1,%r1 |
| jle .L5 |
| lgf %r1,164(%r11) |
| sllg %r1,%r1,2 |
| aghi %r1,-4 |
| ag %r1,168(%r11) |
| lgr %r3,%r1 |
| lg %r2,168(%r11) |
| brasl %r14,swapit@PLT |
| .L5: |
| nopr %r0 |
| lg %r4,288(%r11) |
| lmg %r11,%r15,264(%r11) |
| .cfi_restore 15 |
| .cfi_restore 14 |
| .cfi_restore 13 |
| .cfi_restore 12 |
| .cfi_restore 11 |
| .cfi_def_cfa 15, 160 |
| br %r4 |
| .cfi_endproc |
| .size fake_sort, .-fake_sort |
| |
| .align 8 |
| .globl sort_array |
| .type sort_array, @function |
| sort_array: |
| .cfi_startproc |
| stmg %r11,%r15,88(%r15) |
| .cfi_offset 11, -72 |
| .cfi_offset 12, -64 |
| .cfi_offset 13, -56 |
| .cfi_offset 14, -48 |
| .cfi_offset 15, -40 |
| aghi %r15,-672 |
| .cfi_def_cfa_offset 832 |
| lgr %r11,%r15 |
| .cfi_def_cfa_register 11 |
| lgr %r1,%r11 |
| aghi %r1,160 |
| lghi %r3,128 |
| lgr %r2,%r1 |
| brasl %r14,fake_sort@PLT |
| nopr %r0 |
| lg %r4,784(%r11) |
| lmg %r11,%r15,760(%r11) |
| .cfi_restore 15 |
| .cfi_restore 14 |
| .cfi_restore 13 |
| .cfi_restore 12 |
| .cfi_restore 11 |
| .cfi_def_cfa 15, 160 |
| br %r4 |
| .cfi_endproc |
| .size sort_array, .-sort_array |
| |
| .section .rodata |
| .align 2 |
| .LC0: |
| .string "done" |
| |
| .text |
| .align 8 |
| .globl main |
| .type main, @function |
| main: |
| .cfi_startproc |
| stmg %r11,%r15,88(%r15) |
| .cfi_offset 11, -72 |
| .cfi_offset 12, -64 |
| .cfi_offset 13, -56 |
| .cfi_offset 14, -48 |
| .cfi_offset 15, -40 |
| aghi %r15,-160 |
| .cfi_def_cfa_offset 320 |
| lgr %r11,%r15 |
| .cfi_def_cfa_register 11 |
| brasl %r14,sort_array@PLT |
| larl %r2,.LC0 |
| brasl %r14,printf@PLT |
| lhi %r1,0 |
| lgfr %r1,%r1 |
| lgr %r2,%r1 |
| lg %r4,272(%r11) |
| lmg %r11,%r15,248(%r11) |
| .cfi_restore 15 |
| .cfi_restore 14 |
| .cfi_restore 13 |
| .cfi_restore 12 |
| .cfi_restore 11 |
| .cfi_def_cfa 15, 160 |
| br %r4 |
| .cfi_endproc |
| .size main, .-main |
| |
| .globl _start |
| .type _start, @function |
| _start: |
| brasl %r14,_start |
| .size _start, .-_start |
| |
| $ as --gsframe -o sort.o sort.s |
| $ ld -lc sort.o -o sort |
| |
| $ cp sort test-v2-ET_EXEC.sframe |
| $ chmod -x test-v2-ET_EXEC.sframe |
| $ bzip2 test-v2-ET_EXEC.sframe |
| |
| $ cp sort.o test-v2-ET_REL.sframe |
| $ bzip2 test-v2-ET_REL.sframe |