mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-06 01:03:55 -06:00
tcg: Move the CIE and FDE header definitions to common code
These will necessarily be the same layout for all hosts. This limits the amount of boilerplate required to implement jit debug for a host. Reviewed-by: Peter Maydell <peter.maydell@linaro.org> Signed-off-by: Richard Henderson <rth@twiddle.net>
This commit is contained in:
parent
45aba097d2
commit
497a22eb87
4 changed files with 51 additions and 76 deletions
|
@ -1646,29 +1646,12 @@ static void tcg_target_init(TCGContext *s)
|
|||
# define ELF_HOST_FLAGS EF_SPARC_32PLUS
|
||||
#endif
|
||||
|
||||
typedef struct {
|
||||
uint32_t len __attribute__((aligned((sizeof(void *)))));
|
||||
uint32_t id;
|
||||
uint8_t version;
|
||||
char augmentation[1];
|
||||
uint8_t code_align;
|
||||
uint8_t data_align;
|
||||
uint8_t return_column;
|
||||
} DebugFrameCIE;
|
||||
|
||||
typedef struct {
|
||||
uint32_t len __attribute__((aligned((sizeof(void *)))));
|
||||
uint32_t cie_offset;
|
||||
tcg_target_long func_start __attribute__((packed));
|
||||
tcg_target_long func_len __attribute__((packed));
|
||||
uint8_t def_cfa[TCG_TARGET_REG_BITS == 64 ? 4 : 2];
|
||||
uint8_t win_save;
|
||||
uint8_t ret_save[3];
|
||||
} DebugFrameFDE;
|
||||
|
||||
typedef struct {
|
||||
DebugFrameCIE cie;
|
||||
DebugFrameFDE fde;
|
||||
DebugFrameFDEHeader fde;
|
||||
uint8_t fde_def_cfa[TCG_TARGET_REG_BITS == 64 ? 4 : 2];
|
||||
uint8_t fde_win_save;
|
||||
uint8_t fde_ret_save[3];
|
||||
} DebugFrame;
|
||||
|
||||
static DebugFrame debug_frame = {
|
||||
|
@ -1679,8 +1662,10 @@ static DebugFrame debug_frame = {
|
|||
.cie.data_align = -sizeof(void *) & 0x7f,
|
||||
.cie.return_column = 15, /* o7 */
|
||||
|
||||
.fde.len = sizeof(DebugFrameFDE)-4, /* length after .len member */
|
||||
.fde.def_cfa = {
|
||||
/* Total FDE size does not include the "len" member. */
|
||||
.fde.len = sizeof(DebugFrame) - offsetof(DebugFrame, fde.cie_offset),
|
||||
|
||||
.fde_def_cfa = {
|
||||
#if TCG_TARGET_REG_BITS == 64
|
||||
12, 30, /* DW_CFA_def_cfa i6, 2047 */
|
||||
(2047 & 0x7f) | 0x80, (2047 >> 7)
|
||||
|
@ -1688,8 +1673,8 @@ static DebugFrame debug_frame = {
|
|||
13, 30 /* DW_CFA_def_cfa_register i6 */
|
||||
#endif
|
||||
},
|
||||
.fde.win_save = 0x2d, /* DW_CFA_GNU_window_save */
|
||||
.fde.ret_save = { 9, 15, 31 }, /* DW_CFA_register o7, i7 */
|
||||
.fde_win_save = 0x2d, /* DW_CFA_GNU_window_save */
|
||||
.fde_ret_save = { 9, 15, 31 }, /* DW_CFA_register o7, i7 */
|
||||
};
|
||||
|
||||
void tcg_register_jit(void *buf, size_t buf_size)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue