mirror of
https://github.com/darlinghq/darling-gdb.git
synced 2025-02-09 02:37:38 +00:00
* vax-dis.c (entry_mask_bit): New array.
(print_insn_vax): Decode function entry mask.
This commit is contained in:
parent
4184909a51
commit
220abb21d1
@ -1,3 +1,8 @@
|
||||
2005-03-09 Jan-Benedict Glaw <jbglaw@lug-owl.de>
|
||||
|
||||
* vax-dis.c (entry_mask_bit): New array.
|
||||
(print_insn_vax): Decode function entry mask.
|
||||
|
||||
2005-03-07 Aldy Hernandez <aldyh@redhat.com>
|
||||
|
||||
* ppc-opc.c (powerpc_opcodes): Fix encoding of efscfd.
|
||||
@ -8,7 +13,7 @@
|
||||
|
||||
2005-03-03 Ramana Radhakrishnan <ramana.radhakrishnan@codito.com>
|
||||
|
||||
* opcodes/arc-dis.c: Add enum a4_decoding_class.
|
||||
* arc-dis.c (a4_decoding_class): New enum.
|
||||
(dsmOneArcInst): Use the enum values for the decoding class.
|
||||
Remove redundant case in the switch for decodingClass value 11.
|
||||
|
||||
|
@ -1,5 +1,6 @@
|
||||
/* Print VAX instructions.
|
||||
Copyright 1995, 1998, 2000, 2001, 2002 Free Software Foundation, Inc.
|
||||
Copyright 1995, 1998, 2000, 2001, 2002, 2005
|
||||
Free Software Foundation, Inc.
|
||||
Contributed by Pauline Middelink <middelin@polyware.iaf.nl>
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
@ -34,6 +35,21 @@ static char *reg_names[] =
|
||||
"r8", "r9", "r10", "r11", "ap", "fp", "sp", "pc"
|
||||
};
|
||||
|
||||
/* Definitions for the function entry mask bits. */
|
||||
static char *entry_mask_bit[] =
|
||||
{
|
||||
/* Registers 0 and 1 shall not be saved, since they're used to pass back
|
||||
a function's result to it's caller... */
|
||||
"~r0~", "~r1~",
|
||||
/* Registers 2 .. 11 are normal registers. */
|
||||
"r2", "r3", "r4", "r5", "r6", "r7", "r8", "r9", "r10", "r11",
|
||||
/* Registers 12 and 13 are argument and frame pointer and must not
|
||||
be saved by using the entry mask. */
|
||||
"~ap~", "~fp~",
|
||||
/* Bits 14 and 15 control integer and decimal overflow. */
|
||||
"IntOvfl", "DecOvfl",
|
||||
};
|
||||
|
||||
/* Sign-extend an (unsigned char). */
|
||||
#if __STDC__ == 1
|
||||
#define COERCE_SIGNED_CHAR(ch) ((signed char)(ch))
|
||||
@ -140,6 +156,27 @@ print_insn_vax (memaddr, info)
|
||||
buffer[1] = 0;
|
||||
}
|
||||
|
||||
/* Decode function entry mask. */
|
||||
if (info->symbols
|
||||
&& info->symbols[0]
|
||||
&& (info->symbols[0]->flags & BSF_FUNCTION)
|
||||
&& memaddr == bfd_asymbol_value (info->symbols[0]))
|
||||
{
|
||||
int i = 0;
|
||||
int register_mask = buffer[1] << 8 | buffer[0];
|
||||
|
||||
(*info->fprintf_func) (info->stream, "Entry mask 0x%04x = <",
|
||||
register_mask);
|
||||
|
||||
for (i = 15; i >= 0; i--)
|
||||
if (register_mask & (1 << i))
|
||||
(*info->fprintf_func) (info->stream, " %s", entry_mask_bit[i]);
|
||||
|
||||
(*info->fprintf_func) (info->stream, " >");
|
||||
|
||||
return 2;
|
||||
}
|
||||
|
||||
for (votp = &votstrs[0]; votp->name[0]; votp++)
|
||||
{
|
||||
register vax_opcodeT opcode = votp->detail.code;
|
||||
|
Loading…
x
Reference in New Issue
Block a user