projects
/
deliverable
/
binutils-gdb.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Generally, handle CRISv32.
[deliverable/binutils-gdb.git]
/
opcodes
/
dis-buf.c
diff --git
a/opcodes/dis-buf.c
b/opcodes/dis-buf.c
index c6e512122eb076568b8b8124b8dcc6a3c8de6d25..83fbfbd7d21e62aac239d1453a73bf816334dde9 100644
(file)
--- a/
opcodes/dis-buf.c
+++ b/
opcodes/dis-buf.c
@@
-1,5
+1,6
@@
/* Disassemble from a buffer, for GNU.
/* Disassemble from a buffer, for GNU.
- Copyright (C) 1993, 1994, 1998, 1999 Free Software Foundation, Inc.
+ Copyright 1993, 1994, 1996, 1997, 1998, 1999, 2000
+ Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@
-26,14
+27,20
@@
int
buffer_read_memory (memaddr, myaddr, length, info)
bfd_vma memaddr;
bfd_byte *myaddr;
buffer_read_memory (memaddr, myaddr, length, info)
bfd_vma memaddr;
bfd_byte *myaddr;
- int length;
+
unsigned
int length;
struct disassemble_info *info;
{
struct disassemble_info *info;
{
+ unsigned int opb = info->octets_per_byte;
+ unsigned int end_addr_offset = length / opb;
+ unsigned int max_addr_offset = info->buffer_length / opb;
+ unsigned int octets = (memaddr - info->buffer_vma) * opb;
+
if (memaddr < info->buffer_vma
if (memaddr < info->buffer_vma
- || memaddr
+ length > info->buffer_vma + info->buffer_length
)
+ || memaddr
- info->buffer_vma + end_addr_offset > max_addr_offset
)
/* Out of bounds. Use EIO because GDB uses it. */
return EIO;
/* Out of bounds. Use EIO because GDB uses it. */
return EIO;
- memcpy (myaddr, info->buffer + (memaddr - info->buffer_vma), length);
+ memcpy (myaddr, info->buffer + octets, length);
+
return 0;
}
return 0;
}
@@
-67,13
+74,19
@@
generic_print_address (addr, info)
bfd_vma addr;
struct disassemble_info *info;
{
bfd_vma addr;
struct disassemble_info *info;
{
- (*info->fprintf_func) (info->stream, "0x%x", addr);
+ char buf[30];
+
+ sprintf_vma (buf, addr);
+ (*info->fprintf_func) (info->stream, "0x%s", buf);
}
}
+#if 0
/* Just concatenate the address as hex. This is included for
completeness even though both GDB and objdump provide their own (to
print symbolic addresses). */
/* Just concatenate the address as hex. This is included for
completeness even though both GDB and objdump provide their own (to
print symbolic addresses). */
+void generic_strcat_address PARAMS ((bfd_vma, char *, int));
+
void
generic_strcat_address (addr, buf, len)
bfd_vma addr;
void
generic_strcat_address (addr, buf, len)
bfd_vma addr;
@@
-92,8
+105,9
@@
generic_strcat_address (addr, buf, len)
}
return;
}
}
return;
}
+#endif
-/* Just return t
he given address
. */
+/* Just return t
rue
. */
int
generic_symbol_at_address (addr, info)
int
generic_symbol_at_address (addr, info)
@@
-102,3
+116,12
@@
generic_symbol_at_address (addr, info)
{
return 1;
}
{
return 1;
}
+
+/* Just return TRUE. */
+
+bfd_boolean
+generic_symbol_is_valid (asymbol * sym ATTRIBUTE_UNUSED,
+ struct disassemble_info *info ATTRIBUTE_UNUSED)
+{
+ return TRUE;
+}
This page took
0.024924 seconds
and
4
git commands to generate.