diff options
-rw-r--r-- | gas/testsuite/gas/scfi/x86_64/ginsn-cofi-1.l | 38 | ||||
-rw-r--r-- | gas/testsuite/gas/scfi/x86_64/ginsn-cofi-1.s | 20 |
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 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 |