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

Subversion Repositories openrisc

Compare Revisions

  • This comparison shows the changes necessary to convert path
    /openrisc/trunk/gnu-old/binutils-2.18.50/gas/testsuite/gas/cfi
    from Rev 156 to Rev 816
    Reverse comparison

Rev 156 → Rev 816

/cfi-s390x-1.s
0,0 → 1,45
#; $ as -o test.o -m64 -march=z900 gas-cfi-test.s && gcc -m64 -nostdlib -o test test.o
 
.file "a.c"
.text
.align 4
.globl foo
.type foo, @function
foo:
.cfi_startproc
stmg %r8,%r15,64(%r15)
.cfi_offset %r15,-40
.cfi_offset %r14,-48
.cfi_offset %r13,-56
.cfi_offset %r12,-64
.cfi_offset %r11,-72
.cfi_offset %r10,-80
.cfi_offset %r9,-88
.cfi_offset %r8,-96
lgr %r14,%r15
aghi %r15,-160
.cfi_adjust_cfa_offset 160
lgr %r12,%r3
lgr %r10,%r4
lgr %r9,%r2
lgfr %r9,%r9
stg %r14,0(%r15)
brasl %r14,bar1
lgfr %r12,%r12
lgfr %r10,%r10
lgr %r3,%r12
lgr %r4,%r10
lgr %r8,%r2
lgr %r2,%r9
brasl %r14,syscall
lgfr %r8,%r8
lgr %r12,%r2
lgr %r2,%r8
brasl %r14,bar2
lgfr %r12,%r12
lgr %r2,%r12
lg %r4,272(%r15)
lmg %r8,%r15,224(%r15)
br %r4
.cfi_endproc
.size foo, .-foo
/cfi-mips-1.d
0,0 → 1,27
#readelf: -wf
#name: CFI on mips, 1
The section .eh_frame contains:
 
00000000 00000014 00000000 CIE
Version: 1
Augmentation: "zR"
Code alignment factor: 1
Data alignment factor: -4
Return address column: 31
Augmentation data: 0b
 
DW_CFA_def_cfa_register: r29
DW_CFA_def_cfa: r29 ofs 0
DW_CFA_nop
DW_CFA_nop
 
00000018 0000001c 0000001c FDE cie=00000000 pc=00000000..0000002c
DW_CFA_advance_loc: 4 to 00000004
DW_CFA_def_cfa_offset: 8
DW_CFA_advance_loc: 4 to 00000008
DW_CFA_offset: r30 at cfa-8
DW_CFA_advance_loc: 4 to 0000000c
DW_CFA_def_cfa: r30 ofs 8
DW_CFA_advance_loc: 24 to 00000024
DW_CFA_def_cfa: r29 ofs 0
DW_CFA_nop
/cfi-s390-1.s
0,0 → 1,54
#; $ as -o test.o -m31 -march=g5 gas-cfi-test.s && gcc -m32 -nostdlib -o test test.o
 
.file "a.c"
.text
.align 4
.globl foo
.type foo, @function
foo:
.cfi_startproc
stm %r8,%r15,32(%r15)
.cfi_offset %r15,-36
.cfi_offset %r14,-40
.cfi_offset %r13,-44
.cfi_offset %r12,-48
.cfi_offset %r11,-52
.cfi_offset %r10,-56
.cfi_offset %r9,-60
.cfi_offset %r8,-64
bras %r13,.L3
.L2:
.align 4
.LC0:
.long bar1
.LC1:
.long syscall
.LC2:
.long bar2
.align 2
.L3:
lr %r14,%r15
ahi %r15,-96
.cfi_adjust_cfa_offset 96
lr %r12,%r2
l %r2,.LC0-.L2(%r13)
lr %r10,%r3
lr %r9,%r4
st %r14,0(%r15)
basr %r14,%r2
l %r1,.LC1-.L2(%r13)
lr %r4,%r9
lr %r8,%r2
lr %r3,%r10
lr %r2,%r12
basr %r14,%r1
l %r1,.LC2-.L2(%r13)
lr %r12,%r2
lr %r2,%r8
basr %r14,%r1
lr %r2,%r12
l %r4,152(%r15)
lm %r8,%r15,128(%r15)
br %r4
.cfi_endproc
.size foo, .-foo
/cfi-arm-1.d
0,0 → 1,27
#readelf: -wf
#name: CFI on ARM
 
The section .eh_frame contains:
 
00000000 00000010 00000000 CIE
Version: 1
Augmentation: "zR"
Code alignment factor: 2
Data alignment factor: -4
Return address column: 14
Augmentation data: 1b
 
DW_CFA_def_cfa: r13 ofs 0
 
00000014 00000020 00000018 FDE cie=00000000 pc=00000000..00000018
DW_CFA_advance_loc: 4 to 00000004
DW_CFA_def_cfa: r12 ofs 0
DW_CFA_advance_loc: 4 to 00000008
DW_CFA_def_cfa: r13 ofs 16
DW_CFA_advance_loc: 4 to 0000000c
DW_CFA_def_cfa_offset: 32
DW_CFA_offset: r11 at cfa-32
DW_CFA_offset: r14 at cfa-24
DW_CFA_advance_loc: 4 to 00000010
DW_CFA_def_cfa: r11 ofs 16
 
/cfi-ppc-1.d
0,0 → 1,30
#readelf: -wf
#name: CFI on ppc
#as: -a32
 
The section .eh_frame contains:
 
00000000 00000010 00000000 CIE
Version: 1
Augmentation: "zR"
Code alignment factor: 4
Data alignment factor: -4
Return address column: 65
Augmentation data: 1b
 
DW_CFA_def_cfa: r1 ofs 0
 
00000014 00000020 00000018 FDE cie=00000000 pc=00000000..00000070
DW_CFA_advance_loc: 4 to 00000004
DW_CFA_def_cfa_offset: 48
DW_CFA_advance_loc: 16 to 00000014
DW_CFA_offset: r27 at cfa-20
DW_CFA_offset: r26 at cfa-24
DW_CFA_offset_extended_sf: r65 at cfa\+4
DW_CFA_advance_loc: 8 to 0000001c
DW_CFA_offset: r28 at cfa-16
DW_CFA_advance_loc: 8 to 00000024
DW_CFA_offset: r29 at cfa-12
DW_CFA_nop
DW_CFA_nop
 
/cfi-sparc64-1.d
0,0 → 1,25
#readelf: -wf
#name: CFI on SPARC 64-bit
#as: -64
 
The section .eh_frame contains:
 
00000000 00000014 00000000 CIE
Version: 1
Augmentation: "zR"
Code alignment factor: 4
Data alignment factor: -8
Return address column: 15
Augmentation data: 1b
 
DW_CFA_def_cfa: r14 ofs 2047
DW_CFA_nop
DW_CFA_nop
DW_CFA_nop
 
00000018 00000014 0000001c FDE cie=00000000 pc=00000000..00000030
DW_CFA_advance_loc: 4 to 00000004
DW_CFA_def_cfa_register: r30
DW_CFA_GNU_window_save
DW_CFA_register: r15 in r31
 
/cfi-alpha-1.d
0,0 → 1,29
#readelf: -wf
#name: CFI on alpha
The section .eh_frame contains:
 
00000000 00000010 00000000 CIE
Version: 1
Augmentation: "zR"
Code alignment factor: 4
Data alignment factor: -8
Return address column: 26
Augmentation data: 1b
 
DW_CFA_def_cfa_register: r30
DW_CFA_nop
 
00000014 00000020 00000018 FDE cie=00000000 pc=00000000..00000034
DW_CFA_advance_loc: 24 to 00000018
DW_CFA_def_cfa: r15 ofs 32
DW_CFA_offset: r26 at cfa-32
DW_CFA_offset: r9 at cfa-24
DW_CFA_offset: r15 at cfa-16
DW_CFA_offset: r34 at cfa-8
DW_CFA_nop
DW_CFA_nop
DW_CFA_nop
DW_CFA_nop
DW_CFA_nop
DW_CFA_nop
DW_CFA_nop
/cfi-alpha-2.d
0,0 → 1,9
#objdump: -r -j .eh_frame
#name: CFI on alpha, 2
 
.*: file format elf64-alpha
 
RELOCATION RECORDS FOR \[\.eh_frame\]:
OFFSET TYPE VALUE
0*000001c SREL32 \.text
0*0000030 SREL32 \.text\+0x0*0000004
/cfi-mips-1.s
0,0 → 1,39
.file 1 "foo.c"
.section .mdebug.abi64
.previous
.text
.align 2
.globl foo
.ent foo
.cfi_startproc
foo:
.frame $fp,8,$31 # vars= 8, regs= 1/0, args= 0, gp= 0
.mask 0x40000000,-8
.fmask 0x00000000,0
.set noreorder
.set nomacro
 
.cfi_def_cfa $sp, 0
addiu $sp,$sp,-8
.cfi_adjust_cfa_offset 8
sw $fp,0($sp)
.cfi_offset $30, -8
move $fp,$sp
.cfi_def_cfa $fp, 8
 
nop
nop
nop
move $sp,$fp
lw $fp,0($sp)
addiu $sp,$sp,8
.cfi_def_cfa $sp, 0
j $31
nop
.set macro
.set reorder
.end foo
.cfi_endproc
.size foo, .-foo
.ident "GCC: (GNU) 4.0.0 20041226 (experimental)"
/cfi-m68k.d
0,0 → 1,38
#readelf: -wf
#name: CFI on m68k
The section .eh_frame contains:
 
00000000 00000014 00000000 CIE
Version: 1
Augmentation: "zR"
Code alignment factor: 2
Data alignment factor: -4
Return address column: 24
Augmentation data: 1b
 
DW_CFA_def_cfa: r15 ofs 4
DW_CFA_offset: r24 at cfa-4
DW_CFA_nop
DW_CFA_nop
 
00000018 00000014 0000001c FDE cie=00000000 pc=00000000..0000000c
DW_CFA_advance_loc: 4 to 00000004
DW_CFA_def_cfa_offset: 4664
DW_CFA_advance_loc: 6 to 0000000a
DW_CFA_def_cfa_offset: 4
 
00000030 00000018 00000034 FDE cie=00000000 pc=0000000c..00000018
DW_CFA_advance_loc: 4 to 00000010
DW_CFA_def_cfa_offset: 8
DW_CFA_offset: r14 at cfa-8
DW_CFA_def_cfa_register: r14
DW_CFA_advance_loc: 6 to 00000016
DW_CFA_def_cfa_register: r15
DW_CFA_nop
 
0000004c 00000010 00000050 FDE cie=00000000 pc=00000018..0000001c
 
DW_CFA_nop
DW_CFA_nop
DW_CFA_nop
 
/cfi-alpha-3.d
0,0 → 1,36
#readelf: -wf
#name: CFI on alpha, 3
The section .eh_frame contains:
 
00000000 00000010 00000000 CIE
Version: 1
Augmentation: "zR"
Code alignment factor: 4
Data alignment factor: -8
Return address column: 26
Augmentation data: 1b
 
DW_CFA_def_cfa_register: r30
DW_CFA_nop
 
00000014 00000028 00000018 FDE cie=00000000 pc=00000000..00000040
DW_CFA_advance_loc: 4 to 00000004
DW_CFA_def_cfa_offset: 32
DW_CFA_advance_loc: 4 to 00000008
DW_CFA_offset: r26 at cfa-32
DW_CFA_advance_loc: 4 to 0000000c
DW_CFA_offset: r9 at cfa-24
DW_CFA_advance_loc: 4 to 00000010
DW_CFA_offset: r15 at cfa-16
DW_CFA_advance_loc: 4 to 00000014
DW_CFA_offset: r34 at cfa-8
DW_CFA_advance_loc: 4 to 00000018
DW_CFA_def_cfa_register: r15
DW_CFA_advance_loc: 36 to 0000003c
DW_CFA_def_cfa: r30 ofs 0
DW_CFA_nop
DW_CFA_nop
DW_CFA_nop
DW_CFA_nop
DW_CFA_nop
 
/cfi-hppa-1.d
0,0 → 1,38
#readelf: -wf
#name: CFI on hppa
The section .eh_frame contains:
 
00000000 00000010 00000000 CIE
Version: 1
Augmentation: "zR"
Code alignment factor: 4
Data alignment factor: -[48]
Return address column: 2
Augmentation data: 1b
 
DW_CFA_def_cfa: r30 ofs 0
 
00000014 00000018 00000018 FDE cie=00000000 pc=00000000..00000018
DW_CFA_advance_loc: 8 to 00000008
DW_CFA_def_cfa_register: r3
DW_CFA_advance_loc: 4 to 0000000c
DW_CFA_def_cfa_offset: 4660
DW_CFA_advance_loc: 8 to 00000014
DW_CFA_def_cfa_register: r30
DW_CFA_nop
 
00000030 00000018 00000034 FDE cie=00000000 pc=00000018..00000040
DW_CFA_advance_loc: 12 to 00000024
DW_CFA_def_cfa_register: r3
DW_CFA_offset: r2 at cfa-24
DW_CFA_advance_loc: 24 to 0000003c
DW_CFA_def_cfa_register: r30
DW_CFA_nop
DW_CFA_nop
DW_CFA_nop
 
0000004c 00000010 00000050 FDE cie=00000000 pc=00000040..00000048
DW_CFA_nop
DW_CFA_nop
DW_CFA_nop
 
/cfi-common-1.d
0,0 → 1,23
#readelf: -wf
#name: CFI common 1
The section .eh_frame contains:
 
00000000 00000010 00000000 CIE
Version: 1
Augmentation: "zR"
Code alignment factor: .*
Data alignment factor: .*
Return address column: .*
Augmentation data: [01]b
 
DW_CFA_nop
DW_CFA_nop
DW_CFA_nop
 
00000014 00000018 00000018 FDE cie=00000000 pc=.*
DW_CFA_advance_loc: 4 to .*
DW_CFA_def_cfa: r0( \([er]ax\)|) ofs 16
DW_CFA_offset: r1( \((rdx|ecx)\)|) at cfa-8
DW_CFA_advance_loc: 4 to .*
DW_CFA_def_cfa_offset: 32
DW_CFA_offset: r2( \((rcx|edx)\)|) at cfa-24
/cfi-common-2.d
0,0 → 1,24
#readelf: -wf
#name: CFI common 2
The section .eh_frame contains:
 
00000000 00000010 00000000 CIE
Version: 1
Augmentation: "zR"
Code alignment factor: .*
Data alignment factor: .*
Return address column: .*
Augmentation data: [01]b
#...
00000014 000000[12][c0] 00000018 FDE cie=00000000 pc=.*
DW_CFA_advance_loc: 4 to .*
DW_CFA_def_cfa: r0( \([er]ax\)|) ofs 16
DW_CFA_advance_loc: 4 to .*
DW_CFA_remember_state
DW_CFA_advance_loc: 4 to .*
DW_CFA_def_cfa_offset: 0
DW_CFA_advance_loc: 4 to .*
DW_CFA_restore_state
DW_CFA_advance_loc: 4 to .*
DW_CFA_def_cfa_offset: 0
#pass
/cfi-i386-2.d
0,0 → 1,26
#readelf: -wf
#name: CFI on i386, 2
The section .eh_frame contains:
 
00000000 00000014 00000000 CIE
Version: 1
Augmentation: "zR"
Code alignment factor: 1
Data alignment factor: -4
Return address column: 8
Augmentation data: 1b
 
DW_CFA_def_cfa: r4 ofs 4
DW_CFA_offset: r8 at cfa-4
DW_CFA_nop
DW_CFA_nop
 
00000018 00000018 0000001c FDE cie=00000000 pc=00000020..00000029
DW_CFA_advance_loc: 1 to 00000021
DW_CFA_def_cfa_offset: 8
DW_CFA_offset: r5 at cfa-8
DW_CFA_advance_loc: 4 to 00000025
DW_CFA_offset: r3 at cfa-12
DW_CFA_def_cfa_offset: 12
DW_CFA_nop
 
/cfi-common-3.d
0,0 → 1,17
#readelf: -wf
#name: CFI common 3
The section .eh_frame contains:
 
00000000 00000010 00000000 CIE
Version: 1
Augmentation: "zR"
Code alignment factor: .*
Data alignment factor: .*
Return address column: .*
Augmentation data: [01]b
#...
00000014 00000010 00000018 FDE cie=00000000 pc=.*
DW_CFA_advance_loc: 4 to .*
DW_CFA_remember_state
DW_CFA_restore_state
#pass
/cfi-common-4.d
0,0 → 1,20
#readelf: -wf
#name: CFI common 4
The section .eh_frame contains:
 
00000000 00000010 00000000 CIE
Version: 1
Augmentation: "zR"
Code alignment factor: .*
Data alignment factor: .*
Return address column: .*
Augmentation data: [01]b
#...
00000014 00000010 00000018 FDE cie=00000000 pc=.*
DW_CFA_remember_state
DW_CFA_restore_state
#...
00000028 0000001[04] 0000002c FDE cie=00000000 pc=.*
DW_CFA_remember_state
DW_CFA_restore_state
#pass
/cfi-i386.d
0,0 → 1,169
#readelf: -wf
#name: CFI on i386
The section .eh_frame contains:
 
00000000 00000014 00000000 CIE
Version: 1
Augmentation: "zR"
Code alignment factor: 1
Data alignment factor: -4
Return address column: 8
Augmentation data: 1b
 
DW_CFA_def_cfa: r4 \(esp\) ofs 4
DW_CFA_offset: r8 \(eip\) at cfa-4
DW_CFA_nop
DW_CFA_nop
 
00000018 00000014 0000001c FDE cie=00000000 pc=00000000..00000012
DW_CFA_advance_loc: 6 to 00000006
DW_CFA_def_cfa_offset: 4664
DW_CFA_advance_loc: 11 to 00000011
DW_CFA_def_cfa_offset: 4
 
00000030 00000018 00000034 FDE cie=00000000 pc=00000012..0000001f
DW_CFA_advance_loc: 1 to 00000013
DW_CFA_def_cfa_offset: 8
DW_CFA_offset: r5 \(ebp\) at cfa-8
DW_CFA_advance_loc: 2 to 00000015
DW_CFA_def_cfa_register: r5 \(ebp\)
DW_CFA_advance_loc: 9 to 0000001e
DW_CFA_def_cfa_register: r4 \(esp\)
 
0000004c 00000014 00000050 FDE cie=00000000 pc=0000001f..0000002f
DW_CFA_advance_loc: 2 to 00000021
DW_CFA_def_cfa_register: r3 \(ebx\)
DW_CFA_advance_loc: 13 to 0000002e
DW_CFA_def_cfa: r4 \(esp\) ofs 4
 
00000064 00000010 00000068 FDE cie=00000000 pc=0000002f..00000035
DW_CFA_nop
DW_CFA_nop
DW_CFA_nop
 
00000078 00000010 0000007c FDE cie=00000000 pc=00000035..00000044
DW_CFA_nop
DW_CFA_nop
DW_CFA_nop
 
0000008c 00000010 00000000 CIE
Version: 1
Augmentation: "zR"
Code alignment factor: 1
Data alignment factor: -4
Return address column: 8
Augmentation data: 1b
 
DW_CFA_undefined: r8 \(eip\)
DW_CFA_nop
 
000000a0 000000ac 00000018 FDE cie=0000008c pc=00000044..00000079
DW_CFA_advance_loc: 1 to 00000045
DW_CFA_undefined: r0 \(eax\)
DW_CFA_advance_loc: 1 to 00000046
DW_CFA_undefined: r1 \(ecx\)
DW_CFA_advance_loc: 1 to 00000047
DW_CFA_undefined: r2 \(edx\)
DW_CFA_advance_loc: 1 to 00000048
DW_CFA_undefined: r3 \(ebx\)
DW_CFA_advance_loc: 1 to 00000049
DW_CFA_undefined: r4 \(esp\)
DW_CFA_advance_loc: 1 to 0000004a
DW_CFA_undefined: r5 \(ebp\)
DW_CFA_advance_loc: 1 to 0000004b
DW_CFA_undefined: r6 \(esi\)
DW_CFA_advance_loc: 1 to 0000004c
DW_CFA_undefined: r7 \(edi\)
DW_CFA_advance_loc: 1 to 0000004d
DW_CFA_undefined: r9 \(eflags\)
DW_CFA_advance_loc: 1 to 0000004e
DW_CFA_undefined: r40 \(es\)
DW_CFA_advance_loc: 1 to 0000004f
DW_CFA_undefined: r41 \(cs\)
DW_CFA_advance_loc: 1 to 00000050
DW_CFA_undefined: r43 \(ds\)
DW_CFA_advance_loc: 1 to 00000051
DW_CFA_undefined: r42 \(ss\)
DW_CFA_advance_loc: 1 to 00000052
DW_CFA_undefined: r44 \(fs\)
DW_CFA_advance_loc: 1 to 00000053
DW_CFA_undefined: r45 \(gs\)
DW_CFA_advance_loc: 1 to 00000054
DW_CFA_undefined: r48 \(tr\)
DW_CFA_advance_loc: 1 to 00000055
DW_CFA_undefined: r49 \(ldtr\)
DW_CFA_advance_loc: 1 to 00000056
DW_CFA_undefined: r39 \(mxcsr\)
DW_CFA_advance_loc: 1 to 00000057
DW_CFA_undefined: r21 \(xmm0\)
DW_CFA_advance_loc: 1 to 00000058
DW_CFA_undefined: r22 \(xmm1\)
DW_CFA_advance_loc: 1 to 00000059
DW_CFA_undefined: r23 \(xmm2\)
DW_CFA_advance_loc: 1 to 0000005a
DW_CFA_undefined: r24 \(xmm3\)
DW_CFA_advance_loc: 1 to 0000005b
DW_CFA_undefined: r25 \(xmm4\)
DW_CFA_advance_loc: 1 to 0000005c
DW_CFA_undefined: r26 \(xmm5\)
DW_CFA_advance_loc: 1 to 0000005d
DW_CFA_undefined: r27 \(xmm6\)
DW_CFA_advance_loc: 1 to 0000005e
DW_CFA_undefined: r28 \(xmm7\)
DW_CFA_advance_loc: 1 to 0000005f
DW_CFA_undefined: r37 \(fcw\)
DW_CFA_advance_loc: 1 to 00000060
DW_CFA_undefined: r38 \(fsw\)
DW_CFA_advance_loc: 1 to 00000061
DW_CFA_undefined: r11 \(st\(?0?\)?\)
DW_CFA_advance_loc: 1 to 00000062
DW_CFA_undefined: r12 \(st\(?1\)?\)
DW_CFA_advance_loc: 1 to 00000063
DW_CFA_undefined: r13 \(st\(?2\)?\)
DW_CFA_advance_loc: 1 to 00000064
DW_CFA_undefined: r14 \(st\(?3\)?\)
DW_CFA_advance_loc: 1 to 00000065
DW_CFA_undefined: r15 \(st\(?4\)?\)
DW_CFA_advance_loc: 1 to 00000066
DW_CFA_undefined: r16 \(st\(?5\)?\)
DW_CFA_advance_loc: 1 to 00000067
DW_CFA_undefined: r17 \(st\(?6\)?\)
DW_CFA_advance_loc: 1 to 00000068
DW_CFA_undefined: r18 \(st\(?7\)?\)
DW_CFA_advance_loc: 1 to 00000069
DW_CFA_undefined: r29 \(mm0\)
DW_CFA_advance_loc: 1 to 0000006a
DW_CFA_undefined: r30 \(mm1\)
DW_CFA_advance_loc: 1 to 0000006b
DW_CFA_undefined: r31 \(mm2\)
DW_CFA_advance_loc: 1 to 0000006c
DW_CFA_undefined: r32 \(mm3\)
DW_CFA_advance_loc: 1 to 0000006d
DW_CFA_undefined: r33 \(mm4\)
DW_CFA_advance_loc: 1 to 0000006e
DW_CFA_undefined: r34 \(mm5\)
DW_CFA_advance_loc: 1 to 0000006f
DW_CFA_undefined: r35 \(mm6\)
DW_CFA_advance_loc: 1 to 00000070
DW_CFA_undefined: r36 \(mm7\)
DW_CFA_advance_loc: 1 to 00000071
DW_CFA_undefined: r53 \(ymm0\)
DW_CFA_advance_loc: 1 to 00000072
DW_CFA_undefined: r54 \(ymm1\)
DW_CFA_advance_loc: 1 to 00000073
DW_CFA_undefined: r55 \(ymm2\)
DW_CFA_advance_loc: 1 to 00000074
DW_CFA_undefined: r56 \(ymm3\)
DW_CFA_advance_loc: 1 to 00000075
DW_CFA_undefined: r57 \(ymm4\)
DW_CFA_advance_loc: 1 to 00000076
DW_CFA_undefined: r58 \(ymm5\)
DW_CFA_advance_loc: 1 to 00000077
DW_CFA_undefined: r59 \(ymm6\)
DW_CFA_advance_loc: 1 to 00000078
DW_CFA_undefined: r60 \(ymm7\)
DW_CFA_nop
DW_CFA_nop
DW_CFA_nop
 
#pass
/cfi-common-5.d
0,0 → 1,24
#readelf: -wf
#name: CFI common 5
The section .eh_frame contains:
 
00000000 00000010 00000000 CIE
Version: 1
Augmentation: "zR"
Code alignment factor: .*
Data alignment factor: .*
Return address column: .*
Augmentation data: [01]b
#...
00000014 00000014 00000018 FDE cie=00000000 pc=.*
DW_CFA_advance_loc: 4 to .*
DW_CFA_remember_state
DW_CFA_advance_loc: 4 to .*
DW_CFA_restore_state
#...
0000002c 0000001[48] 00000030 FDE cie=00000000 pc=.*
DW_CFA_advance_loc: 4 to .*
DW_CFA_def_cfa: r0( \([er]ax\)|) ofs 16
DW_CFA_advance_loc: 4 to .*
DW_CFA_def_cfa_offset: 0
#pass
/cfi-common-6.d
0,0 → 1,73
#readelf: -wf
#name: CFI common 6
The section .eh_frame contains:
 
00000000 00000018 00000000 CIE
Version: 1
Augmentation: "zPLR"
Code alignment factor: .*
Data alignment factor: .*
Return address column: .*
Augmentation data: 03 .. .. .. .. 0c 1b
 
DW_CFA_nop
DW_CFA_nop
DW_CFA_nop
 
0000001c 00000018 00000020 FDE cie=00000000 pc=000000(00|24)..000000(04|28)
Augmentation data: (00 00 00 00 de ad be ef|ef be ad de 00 00 00 00)
 
DW_CFA_nop
DW_CFA_nop
DW_CFA_nop
 
00000038 00000010 00000000 CIE
Version: 1
Augmentation: "zLR"
Code alignment factor: .*
Data alignment factor: .*
Return address column: .*
Augmentation data: 0c 1b
 
DW_CFA_nop
 
0000004c 00000018 00000018 FDE cie=00000038 pc=000000(04|58)..000000(08|5c)
Augmentation data: (00 00 00 00 de ad be ef|ef be ad de 00 00 00 00)
 
DW_CFA_nop
DW_CFA_nop
DW_CFA_nop
 
00000068 00000018 0000006c FDE cie=00000000 pc=000000(08|78)..000000(0c|7c)
Augmentation data: (00 00 00 00 be ef de ad|ad de ef be 00 00 00 00)
 
DW_CFA_nop
DW_CFA_nop
DW_CFA_nop
 
00000084 00000018 00000000 CIE
Version: 1
Augmentation: "zPLR"
Code alignment factor: .*
Data alignment factor: .*
Return address column: .*
Augmentation data: 1b .. .. .. .. 1b 1b
 
DW_CFA_nop
DW_CFA_nop
DW_CFA_nop
 
000000a0 00000014 00000020 FDE cie=00000084 pc=000000(0c|b4)..000000(10|b8)
Augmentation data: .. .. .. ..
 
DW_CFA_nop
DW_CFA_nop
DW_CFA_nop
 
000000b8 00000014 00000038 FDE cie=00000084 pc=000000(10|d0)..000000(14|d4)
Augmentation data: .. .. .. ..
 
DW_CFA_nop
DW_CFA_nop
DW_CFA_nop
 
/cfi-arm-1.s
0,0 → 1,23
#; $ as -o test.o gas-cfi-test.s && gcc -nostdlib -o test test.o
 
.file "a.c"
.text
.align 2
.global foo
.type foo, %function
foo:
.cfi_startproc
mov ip, sp
.cfi_def_cfa ip, 0
stmfd sp!, {r0, r1, r2, r3}
.cfi_def_cfa sp, 16
stmfd sp!, {fp, ip, lr, pc}
.cfi_adjust_cfa_offset 16
.cfi_rel_offset r11, 0
.cfi_rel_offset lr, 8
sub fp, ip, #20
.cfi_def_cfa fp, 16
nop
ldmea fp, {fp, sp, pc}
.cfi_endproc
.size foo, .-foo
/cfi-x86_64.d
0,0 → 1,260
#readelf: -wf
#name: CFI on x86-64
The section .eh_frame contains:
 
00000000 00000014 00000000 CIE
Version: 1
Augmentation: "zR"
Code alignment factor: 1
Data alignment factor: -8
Return address column: 16
Augmentation data: 1b
 
DW_CFA_def_cfa: r7 \(rsp\) ofs 8
DW_CFA_offset: r16 \(rip\) at cfa-8
DW_CFA_nop
DW_CFA_nop
 
00000018 00000014 0000001c FDE cie=00000000 pc=00000000..00000014
DW_CFA_advance_loc: 7 to 00000007
DW_CFA_def_cfa_offset: 4668
DW_CFA_advance_loc: 12 to 00000013
DW_CFA_def_cfa_offset: 8
 
00000030 0000001c 00000034 FDE cie=00000000 pc=00000014..00000022
DW_CFA_advance_loc: 1 to 00000015
DW_CFA_def_cfa_offset: 16
DW_CFA_offset: r6 \(rbp\) at cfa-16
DW_CFA_advance_loc: 3 to 00000018
DW_CFA_def_cfa_register: r6 \(rbp\)
DW_CFA_advance_loc: 9 to 00000021
DW_CFA_def_cfa: r7 \(rsp\) ofs 8
DW_CFA_nop
DW_CFA_nop
DW_CFA_nop
 
00000050 00000014 00000054 FDE cie=00000000 pc=00000022..00000035
DW_CFA_advance_loc: 3 to 00000025
DW_CFA_def_cfa_register: r8 \(r8\)
DW_CFA_advance_loc: 15 to 00000034
DW_CFA_def_cfa_register: r7 \(rsp\)
DW_CFA_nop
 
00000068 00000010 0000006c FDE cie=00000000 pc=00000035..0000003b
DW_CFA_nop
DW_CFA_nop
DW_CFA_nop
 
0000007c 00000010 00000080 FDE cie=00000000 pc=0000003b..0000004d
DW_CFA_nop
DW_CFA_nop
DW_CFA_nop
 
00000090 00000010 00000000 CIE
Version: 1
Augmentation: "zR"
Code alignment factor: 1
Data alignment factor: -8
Return address column: 16
Augmentation data: 1b
 
DW_CFA_def_cfa: r7 \(rsp\) ofs 8
 
000000a4 0000002c 00000018 FDE cie=00000090 pc=0000004d..00000058
DW_CFA_advance_loc: 1 to 0000004e
DW_CFA_def_cfa_offset: 16
DW_CFA_advance_loc: 1 to 0000004f
DW_CFA_def_cfa_register: r8 \(r8\)
DW_CFA_advance_loc: 1 to 00000050
DW_CFA_def_cfa_offset: 4676
DW_CFA_advance_loc: 1 to 00000051
DW_CFA_offset_extended_sf: r4 \(rsi\) at cfa\+16
DW_CFA_advance_loc: 1 to 00000052
DW_CFA_register: r8 \(r8\) in r9 \(r9\)
DW_CFA_advance_loc: 1 to 00000053
DW_CFA_remember_state
DW_CFA_advance_loc: 1 to 00000054
DW_CFA_restore: r6 \(rbp\)
DW_CFA_advance_loc: 1 to 00000055
DW_CFA_undefined: r16 \(rip\)
DW_CFA_advance_loc: 1 to 00000056
DW_CFA_same_value: r3 \(rbx\)
DW_CFA_advance_loc: 1 to 00000057
DW_CFA_restore_state
DW_CFA_nop
 
000000d4 00000010 00000000 CIE
Version: 1
Augmentation: "zR"
Code alignment factor: 1
Data alignment factor: -8
Return address column: 16
Augmentation data: 1b
 
DW_CFA_undefined: r16 \(rip\)
DW_CFA_nop
 
000000e8 000000fc 00000018 FDE cie=000000d4 pc=00000058..000000a7
DW_CFA_advance_loc: 1 to 00000059
DW_CFA_undefined: r0 \(rax\)
DW_CFA_advance_loc: 1 to 0000005a
DW_CFA_undefined: r2 \(rcx\)
DW_CFA_advance_loc: 1 to 0000005b
DW_CFA_undefined: r1 \(rdx\)
DW_CFA_advance_loc: 1 to 0000005c
DW_CFA_undefined: r3 \(rbx\)
DW_CFA_advance_loc: 1 to 0000005d
DW_CFA_undefined: r7 \(rsp\)
DW_CFA_advance_loc: 1 to 0000005e
DW_CFA_undefined: r6 \(rbp\)
DW_CFA_advance_loc: 1 to 0000005f
DW_CFA_undefined: r4 \(rsi\)
DW_CFA_advance_loc: 1 to 00000060
DW_CFA_undefined: r5 \(rdi\)
DW_CFA_advance_loc: 1 to 00000061
DW_CFA_undefined: r8 \(r8\)
DW_CFA_advance_loc: 1 to 00000062
DW_CFA_undefined: r9 \(r9\)
DW_CFA_advance_loc: 1 to 00000063
DW_CFA_undefined: r10 \(r10\)
DW_CFA_advance_loc: 1 to 00000064
DW_CFA_undefined: r11 \(r11\)
DW_CFA_advance_loc: 1 to 00000065
DW_CFA_undefined: r12 \(r12\)
DW_CFA_advance_loc: 1 to 00000066
DW_CFA_undefined: r13 \(r13\)
DW_CFA_advance_loc: 1 to 00000067
DW_CFA_undefined: r14 \(r14\)
DW_CFA_advance_loc: 1 to 00000068
DW_CFA_undefined: r15 \(r15\)
DW_CFA_advance_loc: 1 to 00000069
DW_CFA_undefined: r49 \([er]flags\)
DW_CFA_advance_loc: 1 to 0000006a
DW_CFA_undefined: r50 \(es\)
DW_CFA_advance_loc: 1 to 0000006b
DW_CFA_undefined: r51 \(cs\)
DW_CFA_advance_loc: 1 to 0000006c
DW_CFA_undefined: r53 \(ds\)
DW_CFA_advance_loc: 1 to 0000006d
DW_CFA_undefined: r52 \(ss\)
DW_CFA_advance_loc: 1 to 0000006e
DW_CFA_undefined: r54 \(fs\)
DW_CFA_advance_loc: 1 to 0000006f
DW_CFA_undefined: r55 \(gs\)
DW_CFA_advance_loc: 1 to 00000070
DW_CFA_undefined: r62 \(tr\)
DW_CFA_advance_loc: 1 to 00000071
DW_CFA_undefined: r63 \(ldtr\)
DW_CFA_advance_loc: 1 to 00000072
DW_CFA_undefined: r58 \(fs\.base\)
DW_CFA_advance_loc: 1 to 00000073
DW_CFA_undefined: r59 \(gs\.base\)
DW_CFA_advance_loc: 1 to 00000074
DW_CFA_undefined: r64 \(mxcsr\)
DW_CFA_advance_loc: 1 to 00000075
DW_CFA_undefined: r17 \(xmm0\)
DW_CFA_advance_loc: 1 to 00000076
DW_CFA_undefined: r18 \(xmm1\)
DW_CFA_advance_loc: 1 to 00000077
DW_CFA_undefined: r19 \(xmm2\)
DW_CFA_advance_loc: 1 to 00000078
DW_CFA_undefined: r20 \(xmm3\)
DW_CFA_advance_loc: 1 to 00000079
DW_CFA_undefined: r21 \(xmm4\)
DW_CFA_advance_loc: 1 to 0000007a
DW_CFA_undefined: r22 \(xmm5\)
DW_CFA_advance_loc: 1 to 0000007b
DW_CFA_undefined: r23 \(xmm6\)
DW_CFA_advance_loc: 1 to 0000007c
DW_CFA_undefined: r24 \(xmm7\)
DW_CFA_advance_loc: 1 to 0000007d
DW_CFA_undefined: r25 \(xmm8\)
DW_CFA_advance_loc: 1 to 0000007e
DW_CFA_undefined: r26 \(xmm9\)
DW_CFA_advance_loc: 1 to 0000007f
DW_CFA_undefined: r27 \(xmm10\)
DW_CFA_advance_loc: 1 to 00000080
DW_CFA_undefined: r28 \(xmm11\)
DW_CFA_advance_loc: 1 to 00000081
DW_CFA_undefined: r29 \(xmm12\)
DW_CFA_advance_loc: 1 to 00000082
DW_CFA_undefined: r30 \(xmm13\)
DW_CFA_advance_loc: 1 to 00000083
DW_CFA_undefined: r31 \(xmm14\)
DW_CFA_advance_loc: 1 to 00000084
DW_CFA_undefined: r32 \(xmm15\)
DW_CFA_advance_loc: 1 to 00000085
DW_CFA_undefined: r65 \(fcw\)
DW_CFA_advance_loc: 1 to 00000086
DW_CFA_undefined: r66 \(fsw\)
DW_CFA_advance_loc: 1 to 00000087
DW_CFA_undefined: r33 \(st\(?0?\)?\)
DW_CFA_advance_loc: 1 to 00000088
DW_CFA_undefined: r34 \(st\(?1\)?\)
DW_CFA_advance_loc: 1 to 00000089
DW_CFA_undefined: r35 \(st\(?2\)?\)
DW_CFA_advance_loc: 1 to 0000008a
DW_CFA_undefined: r36 \(st\(?3\)?\)
DW_CFA_advance_loc: 1 to 0000008b
DW_CFA_undefined: r37 \(st\(?4\)?\)
DW_CFA_advance_loc: 1 to 0000008c
DW_CFA_undefined: r38 \(st\(?5\)?\)
DW_CFA_advance_loc: 1 to 0000008d
DW_CFA_undefined: r39 \(st\(?6\)?\)
DW_CFA_advance_loc: 1 to 0000008e
DW_CFA_undefined: r40 \(st\(?7\)?\)
DW_CFA_advance_loc: 1 to 0000008f
DW_CFA_undefined: r41 \(mm0\)
DW_CFA_advance_loc: 1 to 00000090
DW_CFA_undefined: r42 \(mm1\)
DW_CFA_advance_loc: 1 to 00000091
DW_CFA_undefined: r43 \(mm2\)
DW_CFA_advance_loc: 1 to 00000092
DW_CFA_undefined: r44 \(mm3\)
DW_CFA_advance_loc: 1 to 00000093
DW_CFA_undefined: r45 \(mm4\)
DW_CFA_advance_loc: 1 to 00000094
DW_CFA_undefined: r46 \(mm5\)
DW_CFA_advance_loc: 1 to 00000095
DW_CFA_undefined: r47 \(mm6\)
DW_CFA_advance_loc: 1 to 00000096
DW_CFA_undefined: r48 \(mm7\)
DW_CFA_advance_loc: 1 to 00000097
DW_CFA_undefined: r70 \(ymm0\)
DW_CFA_advance_loc: 1 to 00000098
DW_CFA_undefined: r71 \(ymm1\)
DW_CFA_advance_loc: 1 to 00000099
DW_CFA_undefined: r72 \(ymm2\)
DW_CFA_advance_loc: 1 to 0000009a
DW_CFA_undefined: r73 \(ymm3\)
DW_CFA_advance_loc: 1 to 0000009b
DW_CFA_undefined: r74 \(ymm4\)
DW_CFA_advance_loc: 1 to 0000009c
DW_CFA_undefined: r75 \(ymm5\)
DW_CFA_advance_loc: 1 to 0000009d
DW_CFA_undefined: r76 \(ymm6\)
DW_CFA_advance_loc: 1 to 0000009e
DW_CFA_undefined: r77 \(ymm7\)
DW_CFA_advance_loc: 1 to 0000009f
DW_CFA_undefined: r78 \(ymm8\)
DW_CFA_advance_loc: 1 to 000000a0
DW_CFA_undefined: r79 \(ymm9\)
DW_CFA_advance_loc: 1 to 000000a1
DW_CFA_undefined: r80 \(ymm10\)
DW_CFA_advance_loc: 1 to 000000a2
DW_CFA_undefined: r81 \(ymm11\)
DW_CFA_advance_loc: 1 to 000000a3
DW_CFA_undefined: r82 \(ymm12\)
DW_CFA_advance_loc: 1 to 000000a4
DW_CFA_undefined: r83 \(ymm13\)
DW_CFA_advance_loc: 1 to 000000a5
DW_CFA_undefined: r84 \(ymm14\)
DW_CFA_advance_loc: 1 to 000000a6
DW_CFA_undefined: r85 \(ymm15\)
DW_CFA_nop
DW_CFA_nop
DW_CFA_nop
DW_CFA_nop
DW_CFA_nop
 
#pass
/cfi-sparc64-1.s
0,0 → 1,26
#; $ as -o test.o -64 gas-cfi-test.s && gcc -m64 -nostdlib -o test test.o
 
.file "a.c"
.text
.align 4
.globl foo
.type foo, @function
foo:
.cfi_startproc
save %sp, -192, %sp
.cfi_def_cfa_register %fp
.cfi_window_save
.cfi_register %o7, %i7
add %i0, 1, %o0
add %i0, 2, %i0
call bar, 0
sra %o0, 0, %o0
sra %i0, 0, %i0
call bar, 0
mov %i0, %o0
add %o0, 3, %o0
sra %o0, 0, %o0
ret
restore %g0, %o0, %o0
.cfi_endproc
.size foo, .-foo
/cfi-ppc-1.s
0,0 → 1,45
#; $ as -o test.o -a32 gas-cfi-test.s && gcc -nostdlib -o test test.o
 
.file "a.c"
.text
.align 2
.globl foo
.type foo, @function
foo:
.cfi_startproc
stwu 1,-48(1)
.cfi_adjust_cfa_offset 48
mflr 0
stw 0,52(1)
stw 26,24(1)
stw 27,28(1)
.cfi_offset 27,-20
.cfi_offset %r26,-24
.cfi_offset lr,4
mr 27,5
stw 28,32(1)
.cfi_offset %r.28,-16
mr 28,4
stw 29,36(1)
.cfi_offset 29,-12
mr 29,3
bl bar1
mr 5,27
mr 26,3
mr 4,28
mr 3,29
bl syscall
mr 29,3
mr 3,26
bl bar2
lwz 28,32(1)
lwz 0,52(1)
mr 3,29
lwz 26,24(1)
lwz 27,28(1)
mtlr 0
lwz 29,36(1)
addi 1,1,48
blr
.cfi_endproc
.size foo, .-foo
/cfi-alpha-1.s
0,0 → 1,28
.file 1 "z.c"
.set noat
.set noreorder
.text
.align 4
.globl f
.ent f
$f..ng:
f:
.frame $15,32,$26,0
.mask 0x4008200,-32
.fmask 0x4,-8
lda $30,-32($30)
stq $26,0($30)
stq $9,8($30)
stq $15,16($30)
stt $f2,24($30)
mov $30,$15
.prologue 0
mov $15,$30
ldq $26,0($30)
ldq $9,8($30)
ldt $f2,24($30)
ldq $15,16($30)
lda $30,32($30)
ret $31,($26),1
.end f
.ident "GCC: (GNU) 2.96 20000731 (Red Hat Linux 7.2 2.96-112.7.1)"
/cfi-alpha-2.s
0,0 → 1,14
.text
.ent foo
foo:
.frame $30, 0, $26, 0
.prologue 1
ret
.end foo
 
.ent bar
bar:
.frame $30, 0, $26, 0
.prologue 1
ret
.end bar
/cfi-alpha-3.s
0,0 → 1,37
.file 1 "z.c"
.set noat
.set noreorder
.text
.align 4
.globl f
.type f,@function
.usepv f,no
.cfi_startproc
f:
lda $30,-32($30)
.cfi_adjust_cfa_offset 32
stq $26,0($30)
.cfi_offset $26, -32
stq $9,8($30)
.cfi_offset $9, -24
stq $15,16($30)
.cfi_offset $15, -16
stt $f2,24($30)
.cfi_offset $f2, -8
mov $30,$15
.cfi_def_cfa_register $15
 
nop
nop
nop
 
mov $15,$30
ldq $26,0($30)
ldq $9,8($30)
ldt $f2,24($30)
ldq $15,16($30)
lda $30,32($30)
.cfi_def_cfa $30, 0
ret $31,($26),1
.size f, .-f
.cfi_endproc
/cfi-m68k.s
0,0 → 1,64
#; $ as -o test.o gas-cfi-test.s && gcc -nostdlib -o test test.o
 
.text
 
#; func_locvars
#; - function with a space on the stack
#; allocated for local variables
 
.type func_locvars,@function
func_locvars:
.cfi_startproc
#; alocate space for local vars
suba.w #0x1234,%sp
.cfi_adjust_cfa_offset 0x1234
#; dummy body
moveq.l #1,%d0
#; release space of local vars and return
adda.w #0x1234,%sp
.cfi_adjust_cfa_offset -0x1234
rts
.cfi_endproc
 
#; func_prologue
#; - functions that begins with standard
#; prologue: "link %a6,#0"
 
.type func_prologue,@function
func_prologue:
.cfi_startproc
#; prologue, CFI is valid after
#; each instruction.
link %a6,#0
.cfi_def_cfa_offset 8
.cfi_offset a6,-8
.cfi_def_cfa_register a6
 
#; function body
jbsr func_locvars
addq.l #3, %d0
 
#; epilogue with valid CFI
#; (we're better than gcc :-)
unlk %a6
.cfi_def_cfa_register sp
rts
.cfi_endproc
 
#; main
#; - typical function
.type main,@function
main:
.cfi_startproc
#; only function body that doesn't
#; touch the stack at all.
jbsr func_prologue
#; return
rts
.cfi_endproc
/cfi-common-1.s
0,0 → 1,8
.cfi_startproc simple
.long 0
.cfi_def_cfa 0, 16
.cfi_rel_offset 1, 8
.long 0
.cfi_adjust_cfa_offset 16
.cfi_rel_offset 2, 8
.cfi_endproc
/cfi-hppa-1.s
0,0 → 1,66
#; $ as -o test.o gas-cfi-test.s && gcc -nostdlib -o test test.o
 
.text
.align 4
.level 1.1
 
.globl func_locvars
.type func_locvars, @function
func_locvars:
.PROC
.CALLINFO FRAME=0x1234,NO_CALLS,SAVE_SP,ENTRY_GR=3
.ENTRY
.cfi_startproc
copy %r3,%r1
copy %r30,%r3
.cfi_def_cfa_register r3
stwm %r1,0x1234(%r30)
.cfi_adjust_cfa_offset 0x1234
ldo 64(%r3),%r30
ldwm -64(%r30),%r3
.cfi_def_cfa_register sp
bv,n %r0(%r2)
.cfi_endproc
.EXIT
.PROCEND
 
.globl func_prologue
.type func_prologue, @function
func_prologue:
.PROC
.CALLINFO FRAME=64,CALLS,SAVE_RP,SAVE_SP,ENTRY_GR=3
.ENTRY
.cfi_startproc
#; This is not ABI-compliant but helps the test to run on both
#; 32-bit and 64-bit targets
stw %r2,-24(%r30)
copy %r3,%r1
copy %r30,%r3
.cfi_def_cfa_register r3
.cfi_offset r2, -24
stwm %r1,64(%r30)
bl func_locvars,%r2
nop
ldw -20(%r3),%r2
ldo 64(%r3),%r30
ldwm -64(%r30),%r3
.cfi_def_cfa_register sp
bv,n %r0(%r2)
.cfi_endproc
.EXIT
.PROCEND
 
.align 4
.globl main
.type main, @function
main:
.PROC
.CALLINFO CALLS
.ENTRY
#; tail call - simple function that doesn't touch the stack
.cfi_startproc
b func_prologue
nop
.cfi_endproc
.EXIT
.PROCEND
/cfi-sparc-1.d
0,0 → 1,22
#readelf: -wf
#name: CFI on SPARC 32-bit
#as: -32
 
The section .eh_frame contains:
 
00000000 00000010 00000000 CIE
Version: 1
Augmentation: "zR"
Code alignment factor: 4
Data alignment factor: -4
Return address column: 15
Augmentation data: 1b
 
DW_CFA_def_cfa: r14 ofs 0
 
00000014 00000014 00000018 FDE cie=00000000 pc=00000000..00000024
DW_CFA_advance_loc: 4 to 00000004
DW_CFA_def_cfa_register: r30
DW_CFA_GNU_window_save
DW_CFA_register: r15 in r31
 
/cfi-common-2.s
0,0 → 1,12
.cfi_startproc simple
.long 0
.cfi_def_cfa 0, 16
.long 0
.cfi_remember_state
.long 0
.cfi_adjust_cfa_offset -16
.long 0
.cfi_restore_state
.long 0
.cfi_adjust_cfa_offset -16
.cfi_endproc
/cfi-i386-2.s
0,0 → 1,17
.text
.globl foo
.type foo,@function
.cfi_startproc
foo:
push %ebp
.cfi_adjust_cfa_offset 4
.cfi_offset %ebp, -8
.align 4
push %ebx
.cfi_offset %ebx, -12
.cfi_adjust_cfa_offset 4
nop
pop %ebx
pop %ebp
ret
.cfi_endproc
/cfi-common-3.s
0,0 → 1,4
.cfi_startproc simple
.long 0
.cfi_escape 10, 11
.cfi_endproc
/cfi-i386.s
0,0 → 1,174
.text
 
#; func_locvars
#; - function with a space on the stack
#; allocated for local variables
 
.type func_locvars,@function
func_locvars:
.cfi_startproc
#; alocate space for local vars
sub $0x1234,%esp
.cfi_adjust_cfa_offset 0x1234
#; dummy body
movl $1,%eax
#; release space of local vars and return
add $0x1234,%esp
.cfi_adjust_cfa_offset -0x1234
ret
.cfi_endproc
 
#; func_prologue
#; - functions that begins with standard
#; prologue: "pushq %rbp; movq %rsp,%rbp"
 
.type func_prologue,@function
func_prologue:
.cfi_startproc
#; prologue, CFI is valid after
#; each instruction.
pushl %ebp
.cfi_def_cfa_offset 8
.cfi_offset ebp,-8
movl %esp, %ebp
.cfi_def_cfa_register ebp
 
#; function body
call func_locvars
addl $3, %eax
 
#; epilogue with valid CFI
#; (we're better than gcc :-)
leave
.cfi_def_cfa_register esp
ret
.cfi_endproc
 
#; func_otherreg
#; - function that moves frame pointer to
#; another register (ebx) and then allocates
#; a space for local variables
 
.type func_otherreg,@function
func_otherreg:
.cfi_startproc
 
#; save frame pointer to ebx
mov %esp,%ebx
.cfi_def_cfa_register ebx
 
#; alocate space for local vars
#; (no .cfi_{def,adjust}_cfa_offset here,
#; because CFA is computed from ebx!)
sub $100,%esp
 
#; function body
call func_prologue
add $2, %eax
#; restore frame pointer from ebx
mov %ebx,%esp
.cfi_def_cfa esp,4
ret
.cfi_endproc
 
#; main
#; - typical function
.type main,@function
main:
.cfi_startproc
#; only function body that doesn't
#; touch the stack at all.
call func_otherreg
#; return
ret
.cfi_endproc
 
#; _start
#; - standard entry point
 
.type _start,@function
.globl _start
_start:
.cfi_startproc
call main
movl %eax,%edi
movl $0x1,%eax
int $0x80
hlt
.cfi_endproc
 
#; func_all_registers
#; - test for all .cfi register numbers.
#; This function is never called and the CFI info doesn't make sense.
 
.type func_all_registers,@function
func_all_registers:
.cfi_startproc simple
 
.cfi_undefined eip ; nop
.cfi_undefined eax ; nop
.cfi_undefined ecx ; nop
.cfi_undefined edx ; nop
.cfi_undefined ebx ; nop
.cfi_undefined esp ; nop
.cfi_undefined ebp ; nop
.cfi_undefined esi ; nop
.cfi_undefined edi ; nop
.cfi_undefined eflags ; nop
 
.cfi_undefined es ; nop
.cfi_undefined cs ; nop
.cfi_undefined ds ; nop
.cfi_undefined ss ; nop
.cfi_undefined fs ; nop
.cfi_undefined gs ; nop
.cfi_undefined tr ; nop
.cfi_undefined ldtr ; nop
 
.cfi_undefined mxcsr ; nop
.cfi_undefined xmm0 ; nop
.cfi_undefined xmm1 ; nop
.cfi_undefined xmm2 ; nop
.cfi_undefined xmm3 ; nop
.cfi_undefined xmm4 ; nop
.cfi_undefined xmm5 ; nop
.cfi_undefined xmm6 ; nop
.cfi_undefined xmm7 ; nop
 
.cfi_undefined fcw ; nop
.cfi_undefined fsw ; nop
.cfi_undefined st ; nop
.cfi_undefined st(1) ; nop
.cfi_undefined st(2) ; nop
.cfi_undefined st(3) ; nop
.cfi_undefined st(4) ; nop
.cfi_undefined st(5) ; nop
.cfi_undefined st(6) ; nop
.cfi_undefined st(7) ; nop
 
.cfi_undefined mm0 ; nop
.cfi_undefined mm1 ; nop
.cfi_undefined mm2 ; nop
.cfi_undefined mm3 ; nop
.cfi_undefined mm4 ; nop
.cfi_undefined mm5 ; nop
.cfi_undefined mm6 ; nop
.cfi_undefined mm7 ; nop
 
.cfi_undefined ymm0 ; nop
.cfi_undefined ymm1 ; nop
.cfi_undefined ymm2 ; nop
.cfi_undefined ymm3 ; nop
.cfi_undefined ymm4 ; nop
.cfi_undefined ymm5 ; nop
.cfi_undefined ymm6 ; nop
.cfi_undefined ymm7 ; nop
 
.cfi_endproc
/cfi-common-4.s
0,0 → 1,9
.cfi_startproc simple
.cfi_remember_state
.cfi_restore_state
.cfi_endproc
 
.cfi_startproc simple
.cfi_remember_state
.cfi_restore_state
.cfi_endproc
/cfi-sh-1.d
0,0 → 1,29
#readelf: -wf
#name: CFI on SH
The section .eh_frame contains:
 
00000000 00000010 00000000 CIE
Version: 1
Augmentation: "zR"
Code alignment factor: 2
Data alignment factor: -4
Return address column: 17
Augmentation data: 1b
 
DW_CFA_def_cfa: r15 ofs 0
 
00000014 00000020 00000018 FDE cie=00000000 pc=00000000..0000002c
DW_CFA_advance_loc: 2 to 00000002
DW_CFA_def_cfa_offset: 4
DW_CFA_advance_loc: 2 to 00000004
DW_CFA_def_cfa_offset: 8
DW_CFA_offset: r15 at cfa-4
DW_CFA_offset: r17 at cfa-8
DW_CFA_advance_loc: 6 to 0000000a
DW_CFA_def_cfa_register: r14
DW_CFA_advance_loc: 2 to 0000000c
DW_CFA_def_cfa_offset: 40
DW_CFA_nop
DW_CFA_nop
DW_CFA_nop
 
/cfi-common-5.s
0,0 → 1,24
.text
.cfi_startproc simple
 
.subsection 3
.cfi_startproc simple
.long 0
.cfi_def_cfa 0, 16
.previous
 
.long 0
.cfi_remember_state
 
.subsection 3
.long 0
.cfi_adjust_cfa_offset -16
.previous
 
.long 0
.cfi_restore_state
.cfi_endproc
 
.subsection 3
.cfi_endproc
.previous
/cfi-diag-1.l
0,0 → 1,2
.*: Assembler messages:
.*:2: Error: register save offset not a multiple of .*
/cfi-common-6.s
0,0 → 1,40
.text
.cfi_startproc simple
.cfi_personality 3, my_personality_v0
.cfi_lsda 12, 0xdeadbeef
.long 0
.cfi_endproc
 
.cfi_startproc simple
.cfi_personality 3, my_personality_v0
.cfi_lsda 12, 0xdeadbeef
.cfi_personality 0xff
.long 0
.cfi_endproc
 
.cfi_startproc simple
.cfi_personality 3, my_personality_v0
.cfi_lsda 12, 0xbeefdead
.long 0
.cfi_endproc
 
.cfi_startproc simple
.cfi_personality (0x1b), my_personality_v1
.cfi_lsda 27, 1f
.long 0
.cfi_endproc
 
.cfi_startproc simple
.cfi_personality (0x1b), my_personality_v1
.cfi_lsda 27, 2f
.long 0
.cfi_endproc
 
my_personality_v0:
.long 0
my_personality_v1:
.long 0
1:
.long 0
2:
.long 0
/cfi.exp
0,0 → 1,92
if ![is_elf_format] then {
return
}
 
proc gas_x86_64_check { } {
global NM
global NMFLAGS
 
set status [gas_host_run "$NM $NMFLAGS --help" ""]
return [regexp "targets:.*x86-64" [lindex $status 1]];
}
 
proc gas_x86_32_check { } {
global NM
global NMFLAGS
 
set status [gas_host_run "$NM $NMFLAGS --help" ""]
return [regexp "targets:.*i386" [lindex $status 1]];
}
 
if { [istarget "i*86-*-*"] || [istarget "x86_64-*-*"] } then {
 
global ASFLAGS
set old_ASFLAGS "$ASFLAGS"
 
if { [gas_x86_64_check] } then {
set ASFLAGS "$ASFLAGS --64"
run_dump_test "cfi-x86_64"
set ASFLAGS "$old_ASFLAGS"
}
 
if { [gas_x86_32_check] } then {
set ASFLAGS "$ASFLAGS --32"
run_dump_test "cfi-i386"
set ASFLAGS "$old_ASFLAGS"
}
 
} elseif { [istarget alpha*-*-*] } then {
run_dump_test "cfi-alpha-1"
run_dump_test "cfi-alpha-2"
run_dump_test "cfi-alpha-3"
 
} elseif { [istarget ppc*-*-*] || [istarget powerpc*-*-*] } then {
run_dump_test "cfi-ppc-1"
 
} elseif { [istarget s390*-*-*] } then {
run_dump_test "cfi-s390-1"
if { [istarget s390x*-*-*] } then {
run_dump_test "cfi-s390x-1"
}
 
} elseif { [istarget "m68*-*"] } then {
run_dump_test "cfi-m68k"
 
} elseif { [istarget sparc*-*-*] } then {
global NM
global NMFLAGS
 
set nm_status [gas_host_run "$NM $NMFLAGS --help" ""]
run_dump_test "cfi-sparc-1"
if { [regexp "elf64\[_-\]sparc" [lindex $nm_status 1]] } then {
run_dump_test "cfi-sparc64-1"
}
 
} elseif [istarget "sh*-*"] then {
if { [istarget sh64*-*-*] || [istarget sh5*-*-*] } then {
} else {
run_dump_test "cfi-sh-1"
}
 
} elseif { [istarget "arm*-*"] || [istarget "xscale*-*"] } then {
run_dump_test "cfi-arm-1"
 
} elseif { [istarget "mips*-*"] } then {
run_dump_test "cfi-mips-1"
} elseif { [istarget "hppa*-linux*"] } then {
run_dump_test "cfi-hppa-1"
} else {
return
}
 
run_list_test "cfi-diag-1" ""
run_dump_test "cfi-common-1"
run_dump_test "cfi-common-2"
run_dump_test "cfi-common-3"
run_dump_test "cfi-common-4"
run_dump_test "cfi-common-5"
 
# MIPS doesn't support PC relative cfi directives
if { ![istarget "mips*-*"] } then {
run_dump_test "cfi-common-6"
}
/cfi-x86_64.s
0,0 → 1,231
.text
 
#; func_locvars
#; - function with a space on the stack
#; allocated for local variables
 
.type func_locvars,@function
func_locvars:
.cfi_startproc
#; alocate space for local vars
sub $0x1234,%rsp
.cfi_adjust_cfa_offset 0x1234
#; dummy body
movl $1,%eax
#; release space of local vars and return
add $0x1234,%rsp
.cfi_adjust_cfa_offset -0x1234
ret
.cfi_endproc
 
#; func_prologue
#; - functions that begins with standard
#; prologue: "pushq %rbp; movq %rsp,%rbp"
 
.type func_prologue,@function
func_prologue:
.cfi_startproc
#; prologue, CFI is valid after
#; each instruction.
pushq %rbp
.cfi_def_cfa_offset 16
.cfi_offset %rbp, -16
movq %rsp, %rbp
.cfi_def_cfa_register %rbp
 
#; function body
call func_locvars
addl $3, %eax
 
#; epilogue with valid CFI
#; (we're better than gcc :-)
leaveq
.cfi_def_cfa %rsp, 8
ret
.cfi_endproc
 
#; func_otherreg
#; - function that moves frame pointer to
#; another register (r12) and then allocates
#; a space for local variables
 
.type func_otherreg,@function
func_otherreg:
.cfi_startproc
 
#; save frame pointer to r8
movq %rsp,%r8
.cfi_def_cfa_register r8
 
#; alocate space for local vars
#; (no .cfi_{def,adjust}_cfa_offset here,
#; because CFA is computed from r8!)
sub $100,%rsp
 
#; function body
call func_prologue
addl $2, %eax
#; restore frame pointer from r8
movq %r8,%rsp
.cfi_def_cfa_register rsp
ret
.cfi_endproc
 
#; main
#; - typical function
.type main,@function
main:
.cfi_startproc
#; only function body that doesn't
#; touch the stack at all.
call func_otherreg
#; return
ret
.cfi_endproc
 
#; _start
#; - standard entry point
 
.type _start,@function
.globl _start
_start:
.cfi_startproc
call main
movq %rax,%rdi
movq $0x3c,%rax
syscall
hlt
.cfi_endproc
 
#; func_alldirectives
#; - test for all .cfi directives.
#; This function is never called and the CFI info doesn't make sense.
 
.type func_alldirectives,@function
func_alldirectives:
.cfi_startproc simple
.cfi_def_cfa rsp,8
nop
.cfi_def_cfa_offset 16
nop
.cfi_def_cfa_register r8
nop
.cfi_adjust_cfa_offset 0x1234
nop
.cfi_offset %rsi, 0x10
nop
.cfi_register %r8, %r9
nop
.cfi_remember_state
nop
.cfi_restore %rbp
nop
.cfi_undefined %rip
nop
.cfi_same_value rbx
nop
.cfi_restore_state
ret
.cfi_endproc
 
#; func_all_registers
#; - test for all .cfi register numbers.
#; This function is never called and the CFI info doesn't make sense.
 
.type func_all_registers,@function
func_all_registers:
.cfi_startproc simple
 
.cfi_undefined rip ; nop
.cfi_undefined rax ; nop
.cfi_undefined rcx ; nop
.cfi_undefined rdx ; nop
.cfi_undefined rbx ; nop
.cfi_undefined rsp ; nop
.cfi_undefined rbp ; nop
.cfi_undefined rsi ; nop
.cfi_undefined rdi ; nop
.cfi_undefined r8 ; nop
.cfi_undefined r9 ; nop
.cfi_undefined r10 ; nop
.cfi_undefined r11 ; nop
.cfi_undefined r12 ; nop
.cfi_undefined r13 ; nop
.cfi_undefined r14 ; nop
.cfi_undefined r15 ; nop
.cfi_undefined rflags ; nop
 
.cfi_undefined es ; nop
.cfi_undefined cs ; nop
.cfi_undefined ds ; nop
.cfi_undefined ss ; nop
.cfi_undefined fs ; nop
.cfi_undefined gs ; nop
.cfi_undefined tr ; nop
.cfi_undefined ldtr ; nop
.cfi_undefined fs.base ; nop
.cfi_undefined gs.base ; nop
 
.cfi_undefined mxcsr ; nop
.cfi_undefined xmm0 ; nop
.cfi_undefined xmm1 ; nop
.cfi_undefined xmm2 ; nop
.cfi_undefined xmm3 ; nop
.cfi_undefined xmm4 ; nop
.cfi_undefined xmm5 ; nop
.cfi_undefined xmm6 ; nop
.cfi_undefined xmm7 ; nop
.cfi_undefined xmm8 ; nop
.cfi_undefined xmm9 ; nop
.cfi_undefined xmm10 ; nop
.cfi_undefined xmm11 ; nop
.cfi_undefined xmm12 ; nop
.cfi_undefined xmm13 ; nop
.cfi_undefined xmm14 ; nop
.cfi_undefined xmm15 ; nop
 
.cfi_undefined fcw ; nop
.cfi_undefined fsw ; nop
.cfi_undefined st ; nop
.cfi_undefined st(1) ; nop
.cfi_undefined st(2) ; nop
.cfi_undefined st(3) ; nop
.cfi_undefined st(4) ; nop
.cfi_undefined st(5) ; nop
.cfi_undefined st(6) ; nop
.cfi_undefined st(7) ; nop
 
.cfi_undefined mm0 ; nop
.cfi_undefined mm1 ; nop
.cfi_undefined mm2 ; nop
.cfi_undefined mm3 ; nop
.cfi_undefined mm4 ; nop
.cfi_undefined mm5 ; nop
.cfi_undefined mm6 ; nop
.cfi_undefined mm7 ; nop
 
.cfi_undefined ymm0 ; nop
.cfi_undefined ymm1 ; nop
.cfi_undefined ymm2 ; nop
.cfi_undefined ymm3 ; nop
.cfi_undefined ymm4 ; nop
.cfi_undefined ymm5 ; nop
.cfi_undefined ymm6 ; nop
.cfi_undefined ymm7 ; nop
.cfi_undefined ymm8 ; nop
.cfi_undefined ymm9 ; nop
.cfi_undefined ymm10 ; nop
.cfi_undefined ymm11 ; nop
.cfi_undefined ymm12 ; nop
.cfi_undefined ymm13 ; nop
.cfi_undefined ymm14 ; nop
.cfi_undefined ymm15 ; nop
 
.cfi_endproc
/cfi-diag-1.s
0,0 → 1,3
.cfi_startproc
.cfi_offset 0, 1
.cfi_endproc
/cfi-s390x-1.d
0,0 → 1,34
#readelf: -wf
#name: CFI on s390x
#as: -m64 -march=z900
 
The section .eh_frame contains:
 
00000000 00000014 00000000 CIE
Version: 1
Augmentation: "zR"
Code alignment factor: 1
Data alignment factor: -8
Return address column: 14
Augmentation data: 1b
 
DW_CFA_def_cfa: r15 ofs 160
DW_CFA_nop
DW_CFA_nop
DW_CFA_nop
 
00000018 00000024 0000001c FDE cie=00000000 pc=00000000..00000070
DW_CFA_advance_loc: 6 to 00000006
DW_CFA_offset: r15 at cfa-40
DW_CFA_offset: r14 at cfa-48
DW_CFA_offset: r13 at cfa-56
DW_CFA_offset: r12 at cfa-64
DW_CFA_offset: r11 at cfa-72
DW_CFA_offset: r10 at cfa-80
DW_CFA_offset: r9 at cfa-88
DW_CFA_offset: r8 at cfa-96
DW_CFA_advance_loc: 8 to 0000000e
DW_CFA_def_cfa_offset: 320
DW_CFA_nop
DW_CFA_nop
 
/cfi-sparc-1.s
0,0 → 1,23
#; $ as -o test.o -32 gas-cfi-test.s && gcc -m32 -nostdlib -o test test.o
 
.file "a.c"
.text
.align 4
.globl foo
.type foo, @function
foo:
.cfi_startproc
save %sp, -104, %sp
.cfi_def_cfa_register %fp
.cfi_window_save
.cfi_register %o7, %i7
add %i0, 1, %o0
call bar, 0
add %i0, 2, %i0
call bar, 0
mov %i0, %o0
add %o0, 3, %o0
ret
restore %g0, %o0, %o0
.cfi_endproc
.size foo, .-foo
/cfi-sh-1.s
0,0 → 1,39
.file "a.c"
.text
.align 1
.globl foo
.type foo, @function
foo:
.cfi_startproc
mov.l r14,@-r15
.cfi_adjust_cfa_offset 4
sts.l pr,@-r15
.cfi_adjust_cfa_offset 4
.cfi_offset r15,-4
.cfi_offset pr,-8
tst r4,r4
bt/s .L2
mov r15,r14
.cfi_def_cfa_register r14
add #-32,r15
.cfi_adjust_cfa_offset 32
mov.l .L3,r0
jsr @r0
mov r15,r4
.L2:
mov.l .L4,r0
jsr @r0
nop
mov #0,r0
mov r14,r15
lds.l @r15+,pr
rts
mov.l @r15+,r14
.L5:
.align 2
.L3:
.long bar
.L4:
.long baz
.cfi_endproc
.size foo, .-foo
/cfi-s390-1.d
0,0 → 1,31
#readelf: -wf
#name: CFI on s390
#as: -m31 -march=g5
 
The section .eh_frame contains:
 
00000000 00000010 00000000 CIE
Version: 1
Augmentation: "zR"
Code alignment factor: 1
Data alignment factor: -4
Return address column: 14
Augmentation data: 1b
 
DW_CFA_def_cfa: r15 ofs 96
 
00000014 00000024 00000018 FDE cie=00000000 pc=00000000..0000004e
DW_CFA_advance_loc: 4 to 00000004
DW_CFA_offset: r15 at cfa-36
DW_CFA_offset: r14 at cfa-40
DW_CFA_offset: r13 at cfa-44
DW_CFA_offset: r12 at cfa-48
DW_CFA_offset: r11 at cfa-52
DW_CFA_offset: r10 at cfa-56
DW_CFA_offset: r9 at cfa-60
DW_CFA_offset: r8 at cfa-64
DW_CFA_advance_loc: 22 to 0000001a
DW_CFA_def_cfa_offset: 192
DW_CFA_nop
DW_CFA_nop
 

powered by: WebSVN 2.1.0

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