This is the second biggest read-write global in a sparc64 bsd.mp:
0000000001c091b8 g O .data 0000000000002cb8 sparc_i
ddb(4) does not ever write to it and happily decodes instructions after
moving it to .rodata:
ddb{3}> x /i %pc
db_inst_branch+0x10: be,pn db_inst_branch+0x64
ddb{3}> x /i db_enter
db_enter: add %sp, -0xd0, %sp
ddb{3}> x /i 0
0: illtrap 0
Fix two comment typos while here.
OK?
diff --git a/sys/arch/sparc64/sparc64/db_disasm.c
b/sys/arch/sparc64/sparc64/db_disasm.c
index b697ad5e163..8924a762dc0 100644
--- a/sys/arch/sparc64/sparc64/db_disasm.c
+++ b/sys/arch/sparc64/sparc64/db_disasm.c
@@ -153,7 +153,7 @@ char *prefetch[] = {
/* The sparc instruction table has a format field which tells what
the operand structure for this instruction is. Here are the codes:
-Modifiers (nust be first):
+Modifiers (must be first):
a -- opcode has annul bit
p -- opcode has branch prediction bit
@@ -201,7 +201,7 @@ V8 only:
*/
-struct sparc_insn sparc_i[] = {
+const struct sparc_insn sparc_i[] = {
/*
* Format 1: Call
@@ -217,7 +217,7 @@ struct sparc_insn sparc_i[] = {
/* Note: if imm22 is zero then this is actually a "nop" grrr... */
{(FORMAT2(0, 0x4)), "sethi", "Cd"},
- /* Branch on Integer Co`ndition Codes "Bicc" */
+ /* Branch on Integer Condition Codes "Bicc" */
{(FORMAT2(0, 2) | COND(8)), "ba", "a,m"},
{(FORMAT2(0, 2) | COND(0)), "bn", "a,m"},
{(FORMAT2(0, 2) | COND(9)), "bne", "a,m"},
@@ -877,7 +877,7 @@ struct sparc_insn sparc_i[] = {
vaddr_t
db_disasm(vaddr_t loc, int altfmt)
{
- struct sparc_insn* i_ptr = (struct sparc_insn *)&sparc_i;
+ const struct sparc_insn *i_ptr = (const struct sparc_insn *)&sparc_i;
unsigned int insn, you_lose, bitmask;
int matchp;