aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIndu Bhagat <indu.bhagat@oracle.com>2024-01-30 00:35:04 -0800
committerIndu Bhagat <indu.bhagat@oracle.com>2024-01-30 00:41:37 -0800
commit48942a586ebc056bd059d3f63a5eed3a2fa46ab3 (patch)
treee95860e1b3bf43dffb66d9f5d84cc1cbe0f3c650
parent7586594c484bbc2a1fb472b988c7e9cbc08c8416 (diff)
downloadfsf-binutils-gdb-48942a586ebc056bd059d3f63a5eed3a2fa46ab3.zip
fsf-binutils-gdb-48942a586ebc056bd059d3f63a5eed3a2fa46ab3.tar.gz
fsf-binutils-gdb-48942a586ebc056bd059d3f63a5eed3a2fa46ab3.tar.bz2
gas: scfi: add missing ginsn-cofi-1 testcase files
Previous commit a58dc5427f0 intended to bring the following two commits from master branch: 91cdbed4d7b gas: scfi: untraceable control flow should be a hard error 16cbeae1b27 x86: testsuite: scfi: adjust COFI testcase But missed adding the testcase files. Fix the failure by adding the missing files. gas/testsuite/ * gas/scfi/x86_64/ginsn-cofi-1.l: New test. * gas/scfi/x86_64/ginsn-cofi-1.s: Likewise.
-rw-r--r--gas/testsuite/gas/scfi/x86_64/ginsn-cofi-1.l38
-rw-r--r--gas/testsuite/gas/scfi/x86_64/ginsn-cofi-1.s20
2 files changed, 58 insertions, 0 deletions
diff --git a/gas/testsuite/gas/scfi/x86_64/ginsn-cofi-1.l b/gas/testsuite/gas/scfi/x86_64/ginsn-cofi-1.l
new file mode 100644
index 0000000..ab6b50d
--- /dev/null
+++ b/gas/testsuite/gas/scfi/x86_64/ginsn-cofi-1.l
@@ -0,0 +1,38 @@
+.*: Assembler messages:
+.*:20: Error: untraceable control flow for func 'foo'
+GAS LISTING .*
+
+
+ 1 # Testcase with a variety of "change of flow instructions"
+ 2 #
+ 3 # This test does not have much going on wrt synthesis of CFI;
+ 4 # it just aims to ensure x8_64 -> ginsn decoding behaves
+ 5 # gracefully for these "change of flow instructions"
+ 6 .text
+ 7 .globl foo
+ 8 .type foo, @function
+ 8 ginsn: SYM FUNC_BEGIN
+ 9 foo:
+ 9 ginsn: SYM foo
+ 10 \?\?\?\? 4801D0 addq %rdx, %rax
+ 10 ginsn: ADD %r1, %r0, %r0
+ 11 \?\?\?\? E200 loop foo
+ 11 ginsn: JCC
+ 12 \?\?\?\? 3EFFE0 notrack jmp \*%rax
+ 12 ginsn: JMP %r0,
+ 13 \?\?\?\? 41FFD0 call \*%r8
+ 13 ginsn: CALL
+ 14 \?\?\?\? 67E305 jecxz .L179
+ 14 ginsn: JCC
+ 15 \?\?\?\? FF6730 jmp \*48\(%rdi\)
+ 15 ginsn: JMP %r5,
+ 16 \?\?\?\? 7000 jo .L179
+ 16 ginsn: JCC
+ 17 .L179:
+ 17 ginsn: SYM .L179
+ 18 \?\?\?\? C3 ret
+ 18 ginsn: RET
+ 19 .LFE0:
+ 19 ginsn: SYM .LFE0
+ 20 .size foo, .-foo
+ 20 ginsn: SYM FUNC_END
diff --git a/gas/testsuite/gas/scfi/x86_64/ginsn-cofi-1.s b/gas/testsuite/gas/scfi/x86_64/ginsn-cofi-1.s
new file mode 100644
index 0000000..0a63910
--- /dev/null
+++ b/gas/testsuite/gas/scfi/x86_64/ginsn-cofi-1.s
@@ -0,0 +1,20 @@
+# Testcase with a variety of "change of flow instructions"
+#
+# This test does not have much going on wrt synthesis of CFI;
+# it just aims to ensure x8_64 -> ginsn decoding behaves
+# gracefully for these "change of flow instructions"
+ .text
+ .globl foo
+ .type foo, @function
+foo:
+ addq %rdx, %rax
+ loop foo
+ notrack jmp *%rax
+ call *%r8
+ jecxz .L179
+ jmp *48(%rdi)
+ jo .L179
+.L179:
+ ret
+.LFE0:
+ .size foo, .-foo