Re: [PATCH v2 13/13] IA64 Linux: Define regset structures.

Ulrich Weigand
2014-07-15T12:30:44Z

Andreas Arnez wrote:

> +static const struct regcache_map_entry ia64_linux_gregmap[] =
> + {
> + { 32, IA64_GR0_REGNUM }, /* r0 ... r31 */
> + { 8, REGCACHE_MAP_SKIP_BYTES }, /* FIXME: NAT collection bits? */
> + { 1, IA64_PR_REGNUM },
> + { 8, IA64_BR0_REGNUM }, /* b0 ... b7 */
> + { 1, IA64_IP_REGNUM },
> + { 1, IA64_CFM_REGNUM },
> + { 1, IA64_PSR_REGNUM },
> + { 1, IA64_RSC_REGNUM },
> + { 1, IA64_BSP_REGNUM },
> + { 1, IA64_BSPSTORE_REGNUM },
> + { 1, IA64_RNAT_REGNUM },
> + { 1, IA64_CCV_REGNUM },
> + { 1, IA64_UNAT_REGNUM },
> + { 1, IA64_FPSR_REGNUM },
> + { 1, IA64_PFS_REGNUM },
> + { 1, IA64_LC_REGNUM },
> + { 1, IA64_EC_REGNUM },
> + { 0 }
> + };
> +
> +#define IA64_LINUX_GREGS_SIZE (55 * 8)

If I'm reading the kernel sources correctly, the core file note will actually
contain 128 register slots.

> +static const struct regcache_map_entry ia64_linux_fpregmap[] =
> + {
> + { 128, IA64_FR0_REGNUM }, /* f0 ... f127 */
> + { 0 }
> + };
> +
> +#define IA64_LINUX_FPREGS_SIZE (128 * 8)

The size of one FP register should be 16 bytes, not 8.

Bye,
Ulrich

--
Dr. Ulrich Weigand
GNU/Linux compilers and toolchain
Ulrich.Weigand@de.ibm.com