2021-03-18 Christian Groessler <chris@groessler.org>
* config/tc-z8k.c (apply_fix): Handle 7-bit relocations correctly. Problem found by Tadashi G. Takaoka <tadashi.g.takaoka@gmail.com>.
This commit is contained in:
parent
15310fd4eb
commit
3273f9a19e
@ -1,3 +1,8 @@
|
||||
2021-03-18 Christian Groessler <chris@groessler.org>
|
||||
|
||||
* config/tc-z8k.c (apply_fix): Handle 7-bit relocations correctly.
|
||||
Problem found by Tadashi G. Takaoka <tadashi.g.takaoka@gmail.com>.
|
||||
|
||||
2021-03-16 Kuan-Lin Chen <kuanlinchentw@gmail.com>
|
||||
|
||||
* config/tc-riscv.c (ext_version_table): Add b, zba, zbb and zbc.
|
||||
|
@ -993,24 +993,34 @@ apply_fix (unsigned char *ptr, bfd_reloc_code_real_type type,
|
||||
/* size is in nibbles. */
|
||||
|
||||
newfix ((ptr - buffer) / 2, type, size + 1, operand);
|
||||
switch (size)
|
||||
|
||||
if (type == BFD_RELOC_Z8K_DISP7)
|
||||
{
|
||||
case 8: /* 8 nibbles == 32 bits. */
|
||||
*ptr++ = n >> 28;
|
||||
*ptr++ = n >> 24;
|
||||
*ptr++ = n >> 20;
|
||||
*ptr++ = n >> 16;
|
||||
/* Fall through. */
|
||||
case 4: /* 4 nibbles == 16 bits. */
|
||||
*ptr++ = n >> 12;
|
||||
*ptr++ = n >> 8;
|
||||
/* Fall through. */
|
||||
case 2:
|
||||
*ptr++ = n >> 4;
|
||||
/* Fall through. */
|
||||
case 1:
|
||||
/* 2 nibbles, but most significant bit is part of the opcode == 7 bits. */
|
||||
*ptr++ = (n >> 4) & 7;
|
||||
*ptr++ = n >> 0;
|
||||
break;
|
||||
}
|
||||
else
|
||||
{
|
||||
switch (size)
|
||||
{
|
||||
case 8: /* 8 nibbles == 32 bits. */
|
||||
*ptr++ = n >> 28;
|
||||
*ptr++ = n >> 24;
|
||||
*ptr++ = n >> 20;
|
||||
*ptr++ = n >> 16;
|
||||
/* Fall through. */
|
||||
case 4: /* 4 nibbles == 16 bits. */
|
||||
*ptr++ = n >> 12;
|
||||
*ptr++ = n >> 8;
|
||||
/* Fall through. */
|
||||
case 2:
|
||||
*ptr++ = n >> 4;
|
||||
/* Fall through. */
|
||||
case 1:
|
||||
*ptr++ = n >> 0;
|
||||
break;
|
||||
}
|
||||
}
|
||||
return ptr;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user