[PATCH 3/4] RISC-V: Optimize riscv_disassemble_data printf

Tsukasa OI research_trasio@irq.a4lg.com
Wed Aug 3 04:27:50 GMT 2022


This commit makes types of printf arguments on `riscv_disassemble_data'
as small as possible (as long as we can preserve the portability) to reduce
the cost of printf (especially on 32-bit host).

opcodes/ChangeLog:

	* riscv-dis.c (riscv_disassemble_data): Use smallest possible type
	to printing data.
---
 opcodes/riscv-dis.c | 10 ++++------
 1 file changed, 4 insertions(+), 6 deletions(-)

diff --git a/opcodes/riscv-dis.c b/opcodes/riscv-dis.c
index 220a16e294f..fe18c18642e 100644
--- a/opcodes/riscv-dis.c
+++ b/opcodes/riscv-dis.c
@@ -907,24 +907,22 @@ riscv_disassemble_data (bfd_vma memaddr ATTRIBUTE_UNUSED,
       (*info->fprintf_styled_func)
 	(info->stream, dis_style_assembler_directive, ".byte\t");
       (*info->fprintf_styled_func)
-	(info->stream, dis_style_immediate, "0x%02llx",
-	 (unsigned long long) data);
+	(info->stream, dis_style_immediate, "0x%02x", (unsigned) data);
       break;
     case 2:
       info->bytes_per_line = 8;
       (*info->fprintf_styled_func)
 	(info->stream, dis_style_assembler_directive, ".short\t");
       (*info->fprintf_styled_func)
-	(info->stream, dis_style_immediate, "0x%04llx",
-	 (unsigned long long) data);
+	(info->stream, dis_style_immediate, "0x%04x", (unsigned) data);
       break;
     case 4:
       info->bytes_per_line = 8;
       (*info->fprintf_styled_func)
 	(info->stream, dis_style_assembler_directive, ".word\t");
       (*info->fprintf_styled_func)
-	(info->stream, dis_style_immediate, "0x%08llx",
-	 (unsigned long long) data);
+	(info->stream, dis_style_immediate, "0x%08lx",
+	 (unsigned long) data);
       break;
     case 8:
       info->bytes_per_line = 8;
-- 
2.34.1



More information about the Binutils mailing list