blob: de13df47c695a86a3ed07514a4f68180fd1668f5 [file] [log] [blame]
/* { dg-do compile { target { { i?86-*-* x86_64-*-* } && lp64 } } } */
/* { dg-options "-fdwarf2-cfi-asm -fdump-rtl-final" } */
/* Lightly-modified dump of test.c.304r.dwarf2 for x86_64 target,
with various NOTE_INSN_CFI deleted by hand for now. */
int __RTL (startwith ("final")) test_1 (int i, int j, int k)
{
(function "test_1"
(param "i"
(DECL_RTL (mem/c:SI (plus:DI (reg/f:DI frame)
(const_int -4)) [1 i+0 S4 A32]))
(DECL_RTL_INCOMING (reg:SI di [ i ])))
(param "j"
(DECL_RTL (mem/c:SI (plus:DI (reg/f:DI frame)
(const_int -8)) [1 j+0 S4 A32]))
(DECL_RTL_INCOMING (reg:SI si [ j ])))
(param "k"
(DECL_RTL (mem/c:SI (plus:DI (reg/f:DI frame)
(const_int -12)) [1 k+0 S4 A32]))
(DECL_RTL_INCOMING (reg:SI dx [ k ])))
(insn-chain
(cnote 1 NOTE_INSN_DELETED)
(block 2
(edge-from entry (flags "FALLTHRU"))
(cnote 6 [bb 2] NOTE_INSN_BASIC_BLOCK)
(cinsn/f 32 (set (mem:DI (pre_dec:DI (reg/f:DI sp)) [0 S8 A8])
(reg/f:DI bp)) "../../src/gcc/testsuite/gcc.dg/rtl/test.c":2)
(cinsn/f 33 (set (reg/f:DI bp)
(reg/f:DI sp)) "../../src/gcc/testsuite/gcc.dg/rtl/test.c":2)
(cinsn 34 (set (mem/v:BLK (0|scratch:DI) [0 A8])
(unspec:BLK [
(mem/v:BLK (reuse_rtx 0) [0 A8])
] UNSPEC_MEMORY_BLOCKAGE)) "../../src/gcc/testsuite/gcc.dg/rtl/test.c":2)
(cnote 35 NOTE_INSN_PROLOGUE_END)
(cinsn 2 (set (mem/c:SI (plus:DI (reg/f:DI bp)
(const_int -4)) [1 i+0 S4 A32])
(reg:SI di [ i ])) "../../src/gcc/testsuite/gcc.dg/rtl/test.c":2)
(cinsn 3 (set (mem/c:SI (plus:DI (reg/f:DI bp)
(const_int -8)) [1 j+0 S4 A32])
(reg:SI si [ j ])) "../../src/gcc/testsuite/gcc.dg/rtl/test.c":2)
(cinsn 4 (set (mem/c:SI (plus:DI (reg/f:DI bp)
(const_int -12)) [1 k+0 S4 A32])
(reg:SI dx [ k ])) "../../src/gcc/testsuite/gcc.dg/rtl/test.c":2)
(cnote 5 NOTE_INSN_FUNCTION_BEG)
(cinsn 8 (set (reg:SI ax [89])
(mem/c:SI (plus:DI (reg/f:DI bp)
(const_int -4)) [1 i+0 S4 A32])) "../../src/gcc/testsuite/gcc.dg/rtl/test.c":3)
(cinsn 9 (set (reg:CCGC flags)
(compare:CCGC (reg:SI ax [89])
(mem/c:SI (plus:DI (reg/f:DI bp)
(const_int -8)) [1 j+0 S4 A32]))) "../../src/gcc/testsuite/gcc.dg/rtl/test.c":3)
(cjump_insn 10 (set (pc)
(if_then_else (ge (reg:CCGC flags)
(const_int 0))
(label_ref 16)
(pc))) "../../src/gcc/testsuite/gcc.dg/rtl/test.c":3)
(edge-to 3 (flags "FALLTHRU"))
(edge-to 4)
) ;; block 2
(block 3
(edge-from 2 (flags "FALLTHRU"))
(cnote 11 [bb 3] NOTE_INSN_BASIC_BLOCK)
(cinsn 12 (set (reg:SI ax [90])
(mem/c:SI (plus:DI (reg/f:DI bp)
(const_int -12)) [1 k+0 S4 A32])) "../../src/gcc/testsuite/gcc.dg/rtl/test.c":4)
(cinsn 13 (parallel [
(set (reg:SI ax [orig:87 _1 ] [87])
(plus:SI (reg:SI ax [90])
(const_int 4)))
(clobber (reg:CC flags))
]) "../../src/gcc/testsuite/gcc.dg/rtl/test.c":4
(expr_list:REG_EQUAL (plus:SI (mem/c:SI (plus:DI (reg/f:DI frame)
(const_int -12)) [1 k+0 S4 A32])
(const_int 4))))
(cjump_insn 29 (set (pc)
(label_ref 20)) "../../src/gcc/testsuite/gcc.dg/rtl/test.c":4)
(edge-to 5)
) ;; block 3
(cbarrier 30)
(block 4
(edge-from 2)
(clabel 16 2)
(cnote 17 [bb 4] NOTE_INSN_BASIC_BLOCK)
(cinsn 18 (set (reg:SI ax [91])
(mem/c:SI (plus:DI (reg/f:DI bp)
(const_int -12)) [1 k+0 S4 A32])) "../../src/gcc/testsuite/gcc.dg/rtl/test.c":6)
(cinsn 19 (parallel [
(set (reg:SI ax [orig:87 _1 ] [87])
(neg:SI (reg:SI ax [91])))
(clobber (reg:CC flags))
]) "../../src/gcc/testsuite/gcc.dg/rtl/test.c":6
(expr_list:REG_EQUAL (neg:SI (mem/c:SI (plus:DI (reg/f:DI frame)
(const_int -12)) [1 k+0 S4 A32]))))
(edge-to 5 (flags "FALLTHRU"))
) ;; block 4
(block 5
(edge-from 4 (flags "FALLTHRU"))
(edge-from 3)
(clabel 20 3)
(cnote 21 [bb 5] NOTE_INSN_BASIC_BLOCK)
(cinsn 27 (use (reg/i:SI ax)) "../../src/gcc/testsuite/gcc.dg/rtl/test.c":7)
(cnote 36 NOTE_INSN_EPILOGUE_BEG)
(cinsn 37 (set (mem/v:BLK (1|scratch:DI) [0 A8])
(unspec:BLK [
(mem/v:BLK (reuse_rtx 1) [0 A8])
] UNSPEC_MEMORY_BLOCKAGE)) "../../src/gcc/testsuite/gcc.dg/rtl/test.c":7)
(cinsn/f 38 (set (reg/f:DI bp)
(mem:DI (post_inc:DI (reg/f:DI sp)) [0 S8 A8])) "../../src/gcc/testsuite/gcc.dg/rtl/test.c":7
(expr_list:REG_CFA_DEF_CFA (plus:DI (reg/f:DI sp)
(const_int 8))))
(cjump_insn 39 (simple_return) "../../src/gcc/testsuite/gcc.dg/rtl/test.c":7)
(edge-to exit)
) ;; block 5
(cbarrier 40)
(cnote 31 NOTE_INSN_DELETED)
) ;; insn-chain
(crtl
(return_rtx
(reg/i:SI ax)
) ;; return_rtx
) ;; crtl
) ;; function "test_1"
}
/* Verify that asm was emitted. */
/* { dg-final { scan-assembler "test_1:" } } */
/* { dg-final { scan-assembler ".cfi_startproc" } } */
/* { dg-final { scan-assembler ".cfi_endproc" } } */
/* Verify that the "simple_return" was recognized.
FIXME: this assumes i386.md. */
/* { dg-final { scan-assembler "ret" } } */