* elf32-rl78.c (rl78_elf_relocate_section): Fix OPsub math.

This commit is contained in:
DJ Delorie 2013-06-11 19:16:07 +00:00
parent 030031eed5
commit 34064ff3cd
2 changed files with 11 additions and 4 deletions

View File

@ -1,3 +1,7 @@
2013-06-11 DJ Delorie <dj@redhat.com>
* elf32-rl78.c (rl78_elf_relocate_section): Fix OPsub math.
2013-06-11 Will Newton <will.newton@linaro.org>
* elf64-aarch64.c (elf_aarch64_get_local_sym_hash): Use

View File

@ -810,10 +810,13 @@ rl78_elf_relocate_section
{
int32_t tmp1, tmp2;
RL78_STACK_POP (tmp2);
RL78_STACK_POP (tmp1);
tmp2 -= tmp1;
RL78_STACK_PUSH (tmp2);
/* For the expression "A - B", the assembler pushes A,
then B, then OPSUB. So the first op we pop is B, not
A. */
RL78_STACK_POP (tmp2); /* B */
RL78_STACK_POP (tmp1); /* A */
tmp1 -= tmp2; /* A - B */
RL78_STACK_PUSH (tmp1);
}
break;