* sparc-tdep.c (sparc_psr_type, sparc_fsr_type): New variables.
(sparc_init_types): New function. (sparc32_register_type): Use appropriate flag types for %fsr and %prs. (_initialize_sparc_tdep): Call sparc_init_types.
This commit is contained in:
parent
83ad0046cf
commit
2d45707707
2 changed files with 57 additions and 0 deletions
|
@ -1,5 +1,11 @@
|
||||||
2006-12-29 Mark Kettenis <kettenis@gnu.org>
|
2006-12-29 Mark Kettenis <kettenis@gnu.org>
|
||||||
|
|
||||||
|
* sparc-tdep.c (sparc_psr_type, sparc_fsr_type): New variables.
|
||||||
|
(sparc_init_types): New function.
|
||||||
|
(sparc32_register_type): Use appropriate flag types for %fsr and
|
||||||
|
%prs.
|
||||||
|
(_initialize_sparc_tdep): Call sparc_init_types.
|
||||||
|
|
||||||
* memory-map.c (memory_map_end_element): Move variable
|
* memory-map.c (memory_map_end_element): Move variable
|
||||||
declarations to the begining of the block.
|
declarations to the begining of the block.
|
||||||
|
|
||||||
|
|
|
@ -294,6 +294,48 @@ sparc32_register_name (int regnum)
|
||||||
|
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/* Type for %psr. */
|
||||||
|
struct type *sparc_psr_type;
|
||||||
|
|
||||||
|
/* Type for %fsr. */
|
||||||
|
struct type *sparc_fsr_type;
|
||||||
|
|
||||||
|
/* Construct types for ISA-specific registers. */
|
||||||
|
|
||||||
|
static void
|
||||||
|
sparc_init_types (void)
|
||||||
|
{
|
||||||
|
struct type *type;
|
||||||
|
|
||||||
|
type = init_flags_type ("builtin_type_sparc_psr", 4);
|
||||||
|
append_flags_type_flag (type, 5, "ET");
|
||||||
|
append_flags_type_flag (type, 6, "PS");
|
||||||
|
append_flags_type_flag (type, 7, "S");
|
||||||
|
append_flags_type_flag (type, 12, "EF");
|
||||||
|
append_flags_type_flag (type, 13, "EC");
|
||||||
|
sparc_psr_type = type;
|
||||||
|
|
||||||
|
type = init_flags_type ("builtin_type_sparc_fsr", 4);
|
||||||
|
append_flags_type_flag (type, 0, "NXA");
|
||||||
|
append_flags_type_flag (type, 1, "DZA");
|
||||||
|
append_flags_type_flag (type, 2, "UFA");
|
||||||
|
append_flags_type_flag (type, 3, "OFA");
|
||||||
|
append_flags_type_flag (type, 4, "NVA");
|
||||||
|
append_flags_type_flag (type, 5, "NXC");
|
||||||
|
append_flags_type_flag (type, 6, "DZC");
|
||||||
|
append_flags_type_flag (type, 7, "UFC");
|
||||||
|
append_flags_type_flag (type, 8, "OFC");
|
||||||
|
append_flags_type_flag (type, 9, "NVC");
|
||||||
|
append_flags_type_flag (type, 22, "NS");
|
||||||
|
append_flags_type_flag (type, 23, "NXM");
|
||||||
|
append_flags_type_flag (type, 24, "DZM");
|
||||||
|
append_flags_type_flag (type, 25, "UFM");
|
||||||
|
append_flags_type_flag (type, 26, "OFM");
|
||||||
|
append_flags_type_flag (type, 27, "NVM");
|
||||||
|
sparc_fsr_type = type;
|
||||||
|
}
|
||||||
|
|
||||||
/* Return the GDB type object for the "standard" data type of data in
|
/* Return the GDB type object for the "standard" data type of data in
|
||||||
register REGNUM. */
|
register REGNUM. */
|
||||||
|
@ -313,6 +355,12 @@ sparc32_register_type (struct gdbarch *gdbarch, int regnum)
|
||||||
if (regnum == SPARC32_PC_REGNUM || regnum == SPARC32_NPC_REGNUM)
|
if (regnum == SPARC32_PC_REGNUM || regnum == SPARC32_NPC_REGNUM)
|
||||||
return builtin_type_void_func_ptr;
|
return builtin_type_void_func_ptr;
|
||||||
|
|
||||||
|
if (regnum == SPARC32_PSR_REGNUM)
|
||||||
|
return sparc_psr_type;
|
||||||
|
|
||||||
|
if (regnum == SPARC32_FSR_REGNUM)
|
||||||
|
return sparc_fsr_type;
|
||||||
|
|
||||||
return builtin_type_int32;
|
return builtin_type_int32;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1621,4 +1669,7 @@ void
|
||||||
_initialize_sparc_tdep (void)
|
_initialize_sparc_tdep (void)
|
||||||
{
|
{
|
||||||
register_gdbarch_init (bfd_arch_sparc, sparc32_gdbarch_init);
|
register_gdbarch_init (bfd_arch_sparc, sparc32_gdbarch_init);
|
||||||
|
|
||||||
|
/* Initialize the SPARC-specific register types. */
|
||||||
|
sparc_init_types();
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Reference in a new issue