diff options
Diffstat (limited to 'system/binutils/x86_64-missing-test.patch')
-rw-r--r-- | system/binutils/x86_64-missing-test.patch | 91 |
1 files changed, 91 insertions, 0 deletions
diff --git a/system/binutils/x86_64-missing-test.patch b/system/binutils/x86_64-missing-test.patch new file mode 100644 index 000000000..e6544c1a1 --- /dev/null +++ b/system/binutils/x86_64-missing-test.patch @@ -0,0 +1,91 @@ +From: Indu Bhagat <indu.bhagat@oracle.com> +Date: Tue, 30 Jan 2024 08:35:04 +0000 (-0800) +Subject: gas: scfi: add missing ginsn-cofi-1 testcase files +X-Git-Url: https://sourceware.org/git/?p=binutils-gdb.git;a=commitdiff_plain;h=48942a586ebc056bd059d3f63a5eed3a2fa46ab3;hp=7586594c484bbc2a1fb472b988c7e9cbc08c8416 + +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. +--- + +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 00000000000..ab6b50d47e8 +--- /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 00000000000..0a63910e046 +--- /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 |