1 /* -----------------------------------------------------------------------
 2    ffi_cfi.h - Copyright (c) 2014  Red Hat, Inc.
 3 
 4    Conditionally assemble cfi directives. Only necessary for building libffi.
 5    ----------------------------------------------------------------------- */
 6 
 7 #ifndef FFI_CFI_H
 8 #define FFI_CFI_H
 9 
10 #ifdef HAVE_AS_CFI_PSEUDO_OP
11 
12 # define cfi_startproc          .cfi_startproc
13 # define cfi_endproc            .cfi_endproc
14 # define cfi_def_cfa(reg, off)      .cfi_def_cfa reg, off
15 # define cfi_def_cfa_register(reg)  .cfi_def_cfa_register reg
16 # define cfi_def_cfa_offset(off)    .cfi_def_cfa_offset off
17 # define cfi_adjust_cfa_offset(off) .cfi_adjust_cfa_offset off
18 # define cfi_offset(reg, off)       .cfi_offset reg, off
19 # define cfi_rel_offset(reg, off)   .cfi_rel_offset reg, off
20 # define cfi_register(r1, r2)       .cfi_register r1, r2
21 # define cfi_return_column(reg)     .cfi_return_column reg
22 # define cfi_restore(reg)       .cfi_restore reg
23 # define cfi_same_value(reg)        .cfi_same_value reg
24 # define cfi_undefined(reg)     .cfi_undefined reg
25 # define cfi_remember_state     .cfi_remember_state
26 # define cfi_restore_state      .cfi_restore_state
27 # define cfi_window_save        .cfi_window_save
28 # define cfi_personality(enc, exp)  .cfi_personality enc, exp
29 # define cfi_lsda(enc, exp)     .cfi_lsda enc, exp
30 # define cfi_escape(...)        .cfi_escape __VA_ARGS__
31 
32 #else
33 
34 # define cfi_startproc
35 # define cfi_endproc
36 # define cfi_def_cfa(reg, off)
37 # define cfi_def_cfa_register(reg)
38 # define cfi_def_cfa_offset(off)
39 # define cfi_adjust_cfa_offset(off)
40 # define cfi_offset(reg, off)
41 # define cfi_rel_offset(reg, off)
42 # define cfi_register(r1, r2)
43 # define cfi_return_column(reg)
44 # define cfi_restore(reg)
45 # define cfi_same_value(reg)
46 # define cfi_undefined(reg)
47 # define cfi_remember_state
48 # define cfi_restore_state
49 # define cfi_window_save
50 # define cfi_personality(enc, exp)
51 # define cfi_lsda(enc, exp)
52 # define cfi_escape(...)
53 
54 #endif /* HAVE_AS_CFI_PSEUDO_OP */
55 #endif /* FFI_CFI_H */