Files
MX_Pmodule/Programming/cctools/files/PR-37520.patch

56 lines
1.7 KiB
Diff

--- as/ppc.c.orig 2013-01-04 10:39:49.000000000 +0100
+++ as/ppc.c 2013-01-04 10:40:02.000000000 +0100
@@ -1019,6 +1019,8 @@ char *op)
/* if this instruction requires labels mark it for later */
switch(insn.reloc){
+ case NO_RELOC:
+ break;
case PPC_RELOC_HI16:
case PPC_RELOC_LO16:
case PPC_RELOC_HA16:
@@ -1033,6 +1035,7 @@ char *op)
insn.reloc);
break;
case PPC_RELOC_BR14:
+ case PPC_RELOC_BR14_predicted:
fix_new(frag_now,
thisfrag - frag_now->fr_literal,
4,
--- as/m88k.c.orig 1969-12-31 16:00:00.000000000 -0800
+++ as/m88k.c 2013-07-05 10:32:19.000000000 -0700
@@ -600,6 +600,10 @@ char *op)
/* if this instruction requires labels mark it for later */
switch (insn.reloc) {
+
+ case NO_RELOC:
+ break;
+
case M88K_RELOC_LO16:
case M88K_RELOC_HI16:
fix_new(
--- as/sparc.c.orig 1969-12-31 16:00:00.000000000 -0800
+++ as/sparc.c 2013-07-05 10:32:14.000000000 -0700
@@ -851,6 +851,20 @@ sparc_ip (str)
/* plug absolutes directly into opcode */
switch(the_insn.reloc) {
+ case SPARC_RELOC_13:
+ if (the_insn.exp.X_seg == SEG_BIG)
+ opcode |= (*(int *) generic_bignum) & 0x1fff;
+ else
+ opcode |= the_insn.exp.X_add_number & 0x1fff;
+ the_insn.reloc = SPARC_RELOC_NONE;
+ break;
+ case SPARC_RELOC_22:
+ if (the_insn.exp.X_seg == SEG_BIG)
+ opcode |= (*(int *) generic_bignum) & 0x3fffff;
+ else
+ opcode |= the_insn.exp.X_add_number & 0x3fffff;
+ the_insn.reloc = SPARC_RELOC_NONE;
+ break;
case SPARC_RELOC_HI22:
/* extract upper 22 bits from constant */
opcode |= (the_insn.exp.X_add_number >> 10) & 0x3fffff;