aboutsummaryrefslogtreecommitdiff
path: root/gas/testsuite
diff options
context:
space:
mode:
authorJakub Jelinek <jakub@redhat.com>2006-11-03 07:29:37 +0000
committerJakub Jelinek <jakub@redhat.com>2006-11-03 07:29:37 +0000
commit9b8ae42e78e6c3e3bc67c31673233568c27d9e71 (patch)
tree1f493a79ef0bfe683893d9c8cff4f546a67dab24 /gas/testsuite
parentae424f8246a09295cca8da6922c8ee781dec4fb1 (diff)
downloadfsf-binutils-gdb-9b8ae42e78e6c3e3bc67c31673233568c27d9e71.zip
fsf-binutils-gdb-9b8ae42e78e6c3e3bc67c31673233568c27d9e71.tar.gz
fsf-binutils-gdb-9b8ae42e78e6c3e3bc67c31673233568c27d9e71.tar.bz2
* dw2gencfi.c (struct fde_entry): Add per_encoding, lsda_encoding,
personality and lsda. (struct cie_entry): Add per_encoding, lsda_encoding and personality. (alloc_fde_entry): Initialize per_encoding and lsda_encoding. (cfi_pseudo_table): Handle .cfi_personality and .cfi_lsda. (dot_cfi_personality, dot_cfi_lsda, encoding_size): New functions. (output_cie): Output personality including its encoding and LSDA encoding. (output_fde): Output LSDA. (select_cie_for_fde): Don't share CIE if personality, its encoding or LSDA encoding are different. Copy the 3 fields from fde_entry to cie_entry. * doc/as.texinfo (.cfi_personality, .cfi_lsda): Document. * gas/cfi/cfi-common-6.d: New test. * gas/cfi/cfi-common-6.s: New. * gas/cfi/cfi.exp: Add cfi-common-6 test.
Diffstat (limited to 'gas/testsuite')
-rw-r--r--gas/testsuite/ChangeLog4
-rw-r--r--gas/testsuite/gas/cfi/cfi-common-6.d73
-rw-r--r--gas/testsuite/gas/cfi/cfi-common-6.s40
-rw-r--r--gas/testsuite/gas/cfi/cfi.exp1
4 files changed, 118 insertions, 0 deletions
diff --git a/gas/testsuite/ChangeLog b/gas/testsuite/ChangeLog
index 0034982..30c77b3 100644
--- a/gas/testsuite/ChangeLog
+++ b/gas/testsuite/ChangeLog
@@ -1,5 +1,9 @@
2006-11-03 Jakub Jelinek <jakub@redhat.com>
+ * gas/cfi/cfi-common-6.d: New test.
+ * gas/cfi/cfi-common-6.s: New.
+ * gas/cfi/cfi.exp: Add cfi-common-6 test.
+
* gas/cfi/cfi-common-5.d: New test.
* gas/cfi/cfi-common-5.s: New.
* gas/cfi/cfi.exp: Add cfi-common-5 test.
diff --git a/gas/testsuite/gas/cfi/cfi-common-6.d b/gas/testsuite/gas/cfi/cfi-common-6.d
new file mode 100644
index 0000000..dcc7b79
--- /dev/null
+++ b/gas/testsuite/gas/cfi/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=00000000..00000004
+ 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=00000004..00000008
+ 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=00000008..0000000c
+ 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=0000000c..00000010
+ Augmentation data: .. .. .. ..
+
+ DW_CFA_nop
+ DW_CFA_nop
+ DW_CFA_nop
+
+000000b8 00000014 00000038 FDE cie=00000084 pc=00000010..00000014
+ Augmentation data: .. .. .. ..
+
+ DW_CFA_nop
+ DW_CFA_nop
+ DW_CFA_nop
+
diff --git a/gas/testsuite/gas/cfi/cfi-common-6.s b/gas/testsuite/gas/cfi/cfi-common-6.s
new file mode 100644
index 0000000..6fa52a5
--- /dev/null
+++ b/gas/testsuite/gas/cfi/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 (0x10 | 11), my_personality_v1
+ .cfi_lsda 27, 1f
+ .long 0
+ .cfi_endproc
+
+ .cfi_startproc simple
+ .cfi_personality (0x10 | 11), 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
diff --git a/gas/testsuite/gas/cfi/cfi.exp b/gas/testsuite/gas/cfi/cfi.exp
index 60b7952..da9ef26 100644
--- a/gas/testsuite/gas/cfi/cfi.exp
+++ b/gas/testsuite/gas/cfi/cfi.exp
@@ -73,3 +73,4 @@ run_dump_test "cfi-common-2"
run_dump_test "cfi-common-3"
run_dump_test "cfi-common-4"
run_dump_test "cfi-common-5"
+run_dump_test "cfi-common-6"