* [binutils-gdb] Revert "segfault at i386-dis.c:9815"
@ 2023-03-20 10:33 Alan Modra
0 siblings, 0 replies; only message in thread
From: Alan Modra @ 2023-03-20 10:33 UTC (permalink / raw)
To: bfd-cvs
https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=834e4d716226b4536bfeb4d20023c69c139eeb5a
commit 834e4d716226b4536bfeb4d20023c69c139eeb5a
Author: Alan Modra <amodra@gmail.com>
Date: Mon Mar 20 20:56:57 2023 +1030
Revert "segfault at i386-dis.c:9815"
This reverts commit 92d450c79ad321e42f9a77692b5db10d0f7b9344.
Accessing these local var structs using a volatile qualified pointer
may indeed read the object, but I don't think changed values are
guaranteed to be written back to the object unless the actual object
is declared volatile. That would probably slow down i386 disassembly
unacceptably.
Diff:
---
opcodes/i386-dis.c | 13 ++++---------
1 file changed, 4 insertions(+), 9 deletions(-)
diff --git a/opcodes/i386-dis.c b/opcodes/i386-dis.c
index 9684dcda746..a414e8c9b1e 100644
--- a/opcodes/i386-dis.c
+++ b/opcodes/i386-dis.c
@@ -9808,17 +9808,12 @@ print_insn (bfd_vma pc, disassemble_info *info, int intel_syntax)
/* Getting here means we tried for data but didn't get it. That
means we have an incomplete instruction of some sort. Just
print the first byte as a prefix or a .byte pseudo-op. */
- volatile struct dis_private *ppriv = &priv;
- volatile instr_info *pins = &ins;
- if (pins->codep > ppriv->the_buffer)
+ if (ins.codep > priv.the_buffer)
{
const char *name = NULL;
- if (pins->prefixes
- || pins->fwait_prefix >= 0
- || (pins->rex & REX_OPCODE))
- name = prefix_name (&ins, ppriv->the_buffer[0],
- ppriv->orig_sizeflag);
+ if (ins.prefixes || ins.fwait_prefix >= 0 || (ins.rex & REX_OPCODE))
+ name = prefix_name (&ins, priv.the_buffer[0], priv.orig_sizeflag);
if (name != NULL)
i386_dis_printf (&ins, dis_style_mnemonic, "%s", name);
else
@@ -9827,7 +9822,7 @@ print_insn (bfd_vma pc, disassemble_info *info, int intel_syntax)
i386_dis_printf (&ins, dis_style_assembler_directive,
".byte ");
i386_dis_printf (&ins, dis_style_immediate, "0x%x",
- (unsigned int) ppriv->the_buffer[0]);
+ (unsigned int) priv.the_buffer[0]);
}
return 1;
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2023-03-20 10:33 UTC | newest]
Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-03-20 10:33 [binutils-gdb] Revert "segfault at i386-dis.c:9815" Alan Modra
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).