MSP430: Fix memory offsets used by %C and %D asm output operand modifiers
authorJozef Lawrynowicz <jozef.l@mittosystems.com>
Mon, 13 Apr 2020 09:28:01 +0000 (10:28 +0100)
committerJozef Lawrynowicz <jozef.l@mittosystems.com>
Mon, 13 Apr 2020 09:47:26 +0000 (10:47 +0100)
commit14f27ee6c97c585018882ac8f1f5f2d64618ba66
treed86d20c6c095b1b8aaf3bdce6bd52a04c1c5f490
parenta1ccbae63cdf25b8ff66da18ed0d081cb9411ccf
MSP430: Fix memory offsets used by %C and %D asm output operand modifiers

The %C and %D operand modifiers are supposed to access the 3rd and 4th
words of a 64-bit value, so for memory references they need to offset
the given address by 4 and 6 bytes respectively.

gcc/ChangeLog:

2020-04-13  Jozef Lawrynowicz  <jozef.l@mittosystems.com>

* config/msp430/msp430.c (msp430_print_operand): Offset a %C memory
reference by 4 bytes, and %D memory reference by 6 bytes.

gcc/testsuite/ChangeLog:

2020-04-13  Jozef Lawrynowicz  <jozef.l@mittosystems.com>

* gcc.target/msp430/operand-modifiers.c: New test.
gcc/ChangeLog
gcc/config/msp430/msp430.c
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.target/msp430/operand-modifiers.c [new file with mode: 0644]