[RL78]: Objdump does not insert space between two operands in disassembly view.

Vinay Kumar. G Vinay.G@kpit.com
Wed Jan 21 12:20:00 GMT 2015


Hi,
The RL78 toolchain "objdump" utility does not insert space between two operands 
in index addressing mode for "mov" operation. 
For example:
/* test.s  */
.text
mov     [sp+byte],a
mov     [de],a
mov     [hl],a
.end

Commands:
$rl78-elf-gcc -c -x assembler-with-cpp test.s -o test.o 
$rl78-elf-objdump -d test.o

Generated output:
test1.o:     file format elf32-rl78
Disassembly of section .text:
00000000 <.text>:
0:   98 00         mov     [sp], a
2:   99            mov     [de],a <--- expected "mov     [de], a"
3:   9b            mov     [hl],a <--- expected "mov     [hl], a"

The below patch adds a space between the two operands. New output would be as follows.
Disassembly of section .text:
00000000 <.text>:
0:   98 00         mov     [sp], a
2:   99            mov     [de], a  -> (space generated here)
3:   9b            mov     [hl], a  -> (space generated here)

Please review below patch and commit the same if OK.
Best Regards,
Vinay

/*********************************************************************/
opcodes/ChangeLog

2015-01-21  Vinay  <Vinay.G@kpit.com>

            * rl78-decode.opc (MOV): Added space between two operands for 'mov' 
              instruction in index addressing mode.
            * rl78-decode.c: Regenerate.

--- opcodes/rl78-decode.opc.org 2015-01-19 15:41:43.118023154 +0500
+++ opcodes/rl78-decode.opc     2015-01-19 15:41:59.927023203 +0500
@@ -610,7 +610,7 @@
/** 1001 1111                           mov      %e!0, %1                                   */
   ID(mov); DM(None, IMMU(2)); SR(A);

-/** 1001 1001                           mov      %e0,%1                          */
+/** 1001 1001                          mov      %e0, %1                         */
   ID(mov); DM(DE, 0); SR(A);

 /** 1100 1010                           mov      %e0, #%1                                   */
@@ -619,7 +619,7 @@
/** 1001 1010                           mov      %e0, %1                         */
   ID(mov); DM(DE, IMMU(1)); SR(A);

-/** 1001 1011                           mov      %e0,%1                          */
+/** 1001 1011                          mov      %e0, %1                         */
   ID(mov); DM(HL, 0); SR(A);

 /** 0110 0001 1101 1001                       mov      %e0, %1                                     */



More information about the Binutils mailing list