> Date: Fri, 21 Oct 2022 20:02:48 +0000
> From: Klemens Nanni <[email protected]>
>
> 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?
Be careful. By moving more stuff into .rodata, you may overflow the
.text/.rodata block. Make sure you build and test the kernels and
also test an actual bsd.rd.
> 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;
>
>