gdb/xtensa: make a0-a15 pseudo registers in case of Window ABI

xtensa_pseudo_register_read/write implement access to a0-a15 registers
in the case of Window ABI. However the split between 'raw' and
'pseudo' registers was made based on the location of the first masked
register. To make access to a0-a15 go through the pseudo register
mechanism, the split should be set based on the location of a0,
instead.
This commit is contained in:
Ivan Grokhotkov
2021-07-19 19:08:14 +02:00
committed by Alexey Lapshin
parent ab91a76024
commit 18482f47e3

View File

@@ -3147,6 +3147,12 @@ xtensa_derive_tdep (xtensa_gdbarch_tdep *tdep)
/* Number of pseudo registers. */ /* Number of pseudo registers. */
tdep->num_pseudo_regs = n - tdep->num_regs; tdep->num_pseudo_regs = n - tdep->num_regs;
if (tdep->isa_use_windowed_registers) {
/* In window ABI, a0-a15 are pseudo registers */
tdep->num_regs = tdep->a0_base;
tdep->num_pseudo_regs = n - tdep->a0_base;
}
/* Empirically determined maximum sizes. */ /* Empirically determined maximum sizes. */
tdep->max_register_raw_size = max_size; tdep->max_register_raw_size = max_size;
tdep->max_register_virtual_size = max_size; tdep->max_register_virtual_size = max_size;