diff --git a/gas/testsuite/gas/cfi-sframe/cfi-sframe-common-4.d b/gas/testsuite/gas/cfi-sframe/cfi-sframe-common-4.d index ca559bd0a02..8632613f532 100644 --- a/gas/testsuite/gas/cfi-sframe/cfi-sframe-common-4.d +++ b/gas/testsuite/gas/cfi-sframe/cfi-sframe-common-4.d @@ -17,7 +17,7 @@ Contents of the SFrame section .sframe: func idx \[0\]: pc = 0x0, size = 12 bytes STARTPC + CFA + FP + RA + #... - 0+0004 +sp\+16 +u +u + - 0+0008 +sp\+32 +u +u + + 0+0004 +sp\+16 +u +[uf] + + 0+0008 +sp\+32 +u +[uf] + #pass diff --git a/gas/testsuite/gas/cfi-sframe/cfi-sframe-common-5.d b/gas/testsuite/gas/cfi-sframe/cfi-sframe-common-5.d index ee82053e13d..dd2c32d3d9f 100644 --- a/gas/testsuite/gas/cfi-sframe/cfi-sframe-common-5.d +++ b/gas/testsuite/gas/cfi-sframe/cfi-sframe-common-5.d @@ -17,7 +17,7 @@ Contents of the SFrame section .sframe: func idx \[0\]: pc = 0x0, size = 12 bytes STARTPC + CFA + FP + RA + #... - 0+0004 +sp\+16 +u +u + - 0+0008 +sp\+24 +u +u + + 0+0004 +sp\+16 +u +[uf] + + 0+0008 +sp\+24 +u +[uf] + #pass diff --git a/gas/testsuite/gas/cfi-sframe/cfi-sframe-common-6.d b/gas/testsuite/gas/cfi-sframe/cfi-sframe-common-6.d index 9d54b98552b..34390c46a07 100644 --- a/gas/testsuite/gas/cfi-sframe/cfi-sframe-common-6.d +++ b/gas/testsuite/gas/cfi-sframe/cfi-sframe-common-6.d @@ -17,7 +17,7 @@ Contents of the SFrame section .sframe: func idx \[0\]: pc = 0x0, size = 12 bytes STARTPC + CFA + FP + RA + #... - 0+0004 +sp\+8 +u +u + - 0+0008 +sp\+8 +u +u + + 0+0004 +sp\+8 +u +[uf] + + 0+0008 +sp\+8 +u +[uf] + #pass diff --git a/gas/testsuite/gas/cfi-sframe/cfi-sframe-common-7.d b/gas/testsuite/gas/cfi-sframe/cfi-sframe-common-7.d index 2b7fe3aec8f..61efb9c4ed1 100644 --- a/gas/testsuite/gas/cfi-sframe/cfi-sframe-common-7.d +++ b/gas/testsuite/gas/cfi-sframe/cfi-sframe-common-7.d @@ -17,7 +17,7 @@ Contents of the SFrame section .sframe: func idx \[0\]: pc = 0x0, size = 12 bytes STARTPC + CFA + FP + RA + #... - 0+0004 +sp\+8 +u +u + - 0+0008 +sp\+8 +u +u + + 0+0004 +sp\+8 +u +[uf] + + 0+0008 +sp\+8 +u +[uf] + #pass diff --git a/gas/testsuite/gas/cfi-sframe/cfi-sframe-common-8.d b/gas/testsuite/gas/cfi-sframe/cfi-sframe-common-8.d index d654e1d0bcd..d77645636b3 100644 --- a/gas/testsuite/gas/cfi-sframe/cfi-sframe-common-8.d +++ b/gas/testsuite/gas/cfi-sframe/cfi-sframe-common-8.d @@ -17,6 +17,6 @@ Contents of the SFrame section .sframe: func idx \[0\]: pc = 0x0, size = 8 bytes STARTPC + CFA + FP + RA + #... - 0+0004 +sp\+16 +u +u + + 0+0004 +sp\+16 +u +[uf] + #pass diff --git a/gas/testsuite/gas/cfi-sframe/cfi-sframe-x86_64-1.d b/gas/testsuite/gas/cfi-sframe/cfi-sframe-x86_64-1.d index c8b5e6adfea..88b4cc63dba 100644 --- a/gas/testsuite/gas/cfi-sframe/cfi-sframe-x86_64-1.d +++ b/gas/testsuite/gas/cfi-sframe/cfi-sframe-x86_64-1.d @@ -16,8 +16,8 @@ Contents of the SFrame section .sframe: func idx \[0\]: pc = 0x0, size = 25 bytes STARTPC +CFA +FP +RA + - 0+0000 +sp\+8 +u +u + - 0+0001 +sp\+16 +c\-16 +u + - 0+0004 +fp\+16 +c\-16 +u + - 0+0018 +sp\+8 +c\-16 +u + + 0+0000 +sp\+8 +u +f + + 0+0001 +sp\+16 +c\-16 +f + + 0+0004 +fp\+16 +c\-16 +f + + 0+0018 +sp\+8 +c\-16 +f + #pass diff --git a/gas/testsuite/gas/scfi/x86_64/scfi-cfi-sections-1.d b/gas/testsuite/gas/scfi/x86_64/scfi-cfi-sections-1.d index c45933b72ed..7c247e33a6e 100644 --- a/gas/testsuite/gas/scfi/x86_64/scfi-cfi-sections-1.d +++ b/gas/testsuite/gas/scfi/x86_64/scfi-cfi-sections-1.d @@ -16,10 +16,10 @@ Contents of the SFrame section .sframe: func idx \[0\]: pc = 0x0, size = 12 bytes STARTPC + CFA + FP + RA + - 0+0000 +sp\+8 +u +u + - 0+0001 +sp\+16 +c\-16 +u + - 0+0004 +fp\+16 +c-16 +u + - 0+000a +sp\+16 +c\-16 +u + - 0+000b +sp\+8 +u +u + + 0+0000 +sp\+8 +u +f + + 0+0001 +sp\+16 +c\-16 +f + + 0+0004 +fp\+16 +c-16 +f + + 0+000a +sp\+16 +c\-16 +f + + 0+000b +sp\+8 +u +f + #pass diff --git a/gas/testsuite/gas/scfi/x86_64/scfi-dyn-stack-1.d b/gas/testsuite/gas/scfi/x86_64/scfi-dyn-stack-1.d index 6cd0484d579..c6a9b53f4e0 100644 --- a/gas/testsuite/gas/scfi/x86_64/scfi-dyn-stack-1.d +++ b/gas/testsuite/gas/scfi/x86_64/scfi-dyn-stack-1.d @@ -16,10 +16,10 @@ Contents of the SFrame section .sframe: Function Index : func idx \[0\]: pc = 0x0, size = 87 bytes - STARTPC + CFA + FP + RA - 0+0000 + sp\+8 + u + u - 0+0001 + sp\+16 + c-16 + u - 0+0004 + fp\+16 + c-16 + u - 0+0056 + sp\+8 + u + u + STARTPC + CFA + FP + RA + + 0+0000 + sp\+8 + u + f + + 0+0001 + sp\+16 + c-16 + f + + 0+0004 + fp\+16 + c-16 + f + + 0+0056 + sp\+8 + u + f + #pass diff --git a/ld/testsuite/ld-x86-64/sframe-plt-1.d b/ld/testsuite/ld-x86-64/sframe-plt-1.d index 6aea5f42469..52bca18d4c0 100644 --- a/ld/testsuite/ld-x86-64/sframe-plt-1.d +++ b/ld/testsuite/ld-x86-64/sframe-plt-1.d @@ -19,12 +19,12 @@ Contents of the SFrame section .sframe: func idx \[0\]: pc = 0x1000, size = 16 bytes STARTPC +CFA +FP +RA + - 0+1000 +sp\+16 +u +u + - 0+1006 +sp\+24 +u +u + + 0+1000 +sp\+16 +u +f + + 0+1006 +sp\+24 +u +f + func idx \[1\]: pc = 0x1010, size = 16 bytes STARTPC\[m\] +CFA +FP +RA + - 0+0000 +sp\+8 +u +u + - 0+000b +sp\+16 +u +u + + 0+0000 +sp\+8 +u +f + + 0+000b +sp\+16 +u +f + #... diff --git a/ld/testsuite/ld-x86-64/sframe-simple-1.d b/ld/testsuite/ld-x86-64/sframe-simple-1.d index 5ffd0ca7818..7d88419226f 100644 --- a/ld/testsuite/ld-x86-64/sframe-simple-1.d +++ b/ld/testsuite/ld-x86-64/sframe-simple-1.d @@ -23,14 +23,14 @@ Contents of the SFrame section .sframe: func idx \[2\]: pc = 0x1020, size = 53 bytes STARTPC +CFA +FP +RA + - 0+1020 +sp\+8 +u +u + - 0+1021 +sp\+16 +c-16 +u + - 0+1024 +fp\+16 +c-16 +u + - 0+1054 +sp\+8 +c-16 +u + + 0+1020 +sp\+8 +u +f + + 0+1021 +sp\+16 +c-16 +f + + 0+1024 +fp\+16 +c-16 +f + + 0+1054 +sp\+8 +c-16 +f + func idx \[3\]: pc = 0x1055, size = 37 bytes STARTPC +CFA +FP +RA + - 0+1055 +sp\+8 +u +u + - 0+1056 +sp\+16 +c-16 +u + - 0+1059 +fp\+16 +c-16 +u + - 0+1079 +sp\+8 +c-16 +u + + 0+1055 +sp\+8 +u +f + + 0+1056 +sp\+16 +c-16 +f + + 0+1059 +fp\+16 +c-16 +f + + 0+1079 +sp\+8 +c-16 +f + diff --git a/libsframe/sframe-dump.c b/libsframe/sframe-dump.c index 493d052ce91..69633d53a33 100644 --- a/libsframe/sframe-dump.c +++ b/libsframe/sframe-dump.c @@ -181,13 +181,15 @@ dump_sframe_func_with_fres (sframe_decoder_ctx *sfd_ctx, printf ("%-10s", temp); /* Dump RA info. - If an ABI does not track RA offset, e.g., AMD64, display a 'u', + If an ABI does not track RA offset, e.g., AMD64, display 'f', else display the offset d as 'c+-d'. */ - if (sframe_decoder_get_fixed_ra_offset(sfd_ctx) + if (sframe_decoder_get_fixed_ra_offset (sfd_ctx) != SFRAME_CFA_FIXED_RA_INVALID) - strcpy (temp, "u"); + strcpy (temp, "f"); else if (err[2] == 0) sprintf (temp, "c%+d", ra_offset); + else + strcpy (temp, "u"); /* Mark SFrame FRE's RA information with "[s]" if the RA is mangled with signature bits. */