mirror of
https://github.com/espressif/binutils-gdb.git
synced 2025-06-23 11:39:26 +08:00
Update to SPARC Version 9 Draft 1.0.4.
This commit is contained in:
@ -1,3 +1,7 @@
|
|||||||
|
Mon Aug 31 10:11:37 1992 Jim Wilson (wilson@sphagnum.cygnus.com)
|
||||||
|
|
||||||
|
* sparc-opc.c: Rigorously updated to match architecture manual.
|
||||||
|
|
||||||
Mon Aug 31 08:07:58 1992 Steve Chamberlain (sac@thepub.cygnus.com)
|
Mon Aug 31 08:07:58 1992 Steve Chamberlain (sac@thepub.cygnus.com)
|
||||||
|
|
||||||
* aoutx.h (aout<n>swap_ext_reloc_out), bout.c
|
* aoutx.h (aout<n>swap_ext_reloc_out), bout.c
|
||||||
|
1511
bfd/sparc-opc.c
1511
bfd/sparc-opc.c
File diff suppressed because it is too large
Load Diff
@ -709,6 +709,10 @@ char *str;
|
|||||||
the_insn.reloc = RELOC_11;
|
the_insn.reloc = RELOC_11;
|
||||||
goto immediate;
|
goto immediate;
|
||||||
|
|
||||||
|
case 'j':
|
||||||
|
the_insn.reloc = RELOC_10;
|
||||||
|
goto immediate;
|
||||||
|
|
||||||
case 'k':
|
case 'k':
|
||||||
the_insn.reloc = RELOC_WDISP2_14;
|
the_insn.reloc = RELOC_WDISP2_14;
|
||||||
the_insn.pcrel = 1;
|
the_insn.pcrel = 1;
|
||||||
@ -733,13 +737,6 @@ char *str;
|
|||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 'Y':
|
|
||||||
if (strncmp(s, "%amr", 4) == 0) {
|
|
||||||
s += 4;
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
|
|
||||||
case 'z':
|
case 'z':
|
||||||
if (*s == ' ') {
|
if (*s == ' ') {
|
||||||
++s;
|
++s;
|
||||||
@ -807,13 +804,6 @@ char *str;
|
|||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 'E':
|
|
||||||
if (strncmp(s, "%modes", 6) == 0) {
|
|
||||||
s += 6;
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
|
|
||||||
case 'W':
|
case 'W':
|
||||||
if (strncmp(s, "%tick", 5) == 0) {
|
if (strncmp(s, "%tick", 5) == 0) {
|
||||||
s += 5;
|
s += 5;
|
||||||
@ -987,13 +977,6 @@ char *str;
|
|||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
/* start-sanitize-v9 */
|
|
||||||
#ifndef NO_V9
|
|
||||||
case 'j':
|
|
||||||
case 'u':
|
|
||||||
case 'U':
|
|
||||||
#endif /* NO_V9 */
|
|
||||||
/* end-sanitize-v9 */
|
|
||||||
case 'e': /* next operand is a floating point register */
|
case 'e': /* next operand is a floating point register */
|
||||||
case 'v':
|
case 'v':
|
||||||
case 'V':
|
case 'V':
|
||||||
@ -1029,16 +1012,14 @@ char *str;
|
|||||||
mask = 10 * mask + (*s - '0');
|
mask = 10 * mask + (*s - '0');
|
||||||
} /* read the number */
|
} /* read the number */
|
||||||
|
|
||||||
if ((*args == 'u'
|
if ((*args == 'v'
|
||||||
|| *args == 'v'
|
|
||||||
|| *args == 'B'
|
|| *args == 'B'
|
||||||
|| *args == 'H')
|
|| *args == 'H')
|
||||||
&& (mask & 1)) {
|
&& (mask & 1)) {
|
||||||
break;
|
break;
|
||||||
} /* register must be even numbered */
|
} /* register must be even numbered */
|
||||||
|
|
||||||
if ((*args == 'U'
|
if ((*args == 'V'
|
||||||
|| *args == 'V'
|
|
||||||
|| *args == 'R'
|
|| *args == 'R'
|
||||||
|| *args == 'J')
|
|| *args == 'J')
|
||||||
&& (mask & 3)) {
|
&& (mask & 3)) {
|
||||||
@ -1085,15 +1066,6 @@ char *str;
|
|||||||
} /* on error */
|
} /* on error */
|
||||||
|
|
||||||
switch (*args) {
|
switch (*args) {
|
||||||
/* start-sanitize-v9 */
|
|
||||||
#ifndef NO_V9
|
|
||||||
case 'j':
|
|
||||||
case 'u':
|
|
||||||
case 'U':
|
|
||||||
opcode |= (mask & 0x1f) << 9;
|
|
||||||
continue;
|
|
||||||
#endif /* NO_V9 */
|
|
||||||
/* end-sanitize-v9 */
|
|
||||||
|
|
||||||
case 'v':
|
case 'v':
|
||||||
case 'V':
|
case 'V':
|
||||||
@ -1271,17 +1243,23 @@ char *str;
|
|||||||
|
|
||||||
/* start-sanitize-v9 */
|
/* start-sanitize-v9 */
|
||||||
#ifndef NO_V9
|
#ifndef NO_V9
|
||||||
case 's':
|
|
||||||
if (strncmp (s, "%usr", 4) != 0)
|
|
||||||
break;
|
|
||||||
s += 4;
|
|
||||||
continue;
|
|
||||||
|
|
||||||
case 'o':
|
case 'o':
|
||||||
if (strncmp (s, "%asi", 4) != 0)
|
if (strncmp (s, "%asi", 4) != 0)
|
||||||
break;
|
break;
|
||||||
s += 4;
|
s += 4;
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
|
case 's':
|
||||||
|
if (strncmp (s, "%fprs", 5) != 0)
|
||||||
|
break;
|
||||||
|
s+= 5;
|
||||||
|
continue;
|
||||||
|
|
||||||
|
case 'E':
|
||||||
|
if (strncmp (s, "%ccr", 4) != 0)
|
||||||
|
break;
|
||||||
|
s+= 4;
|
||||||
|
continue;
|
||||||
#endif /* NO_V9 */
|
#endif /* NO_V9 */
|
||||||
/* end-sanitize-v9 */
|
/* end-sanitize-v9 */
|
||||||
|
|
||||||
@ -1540,6 +1518,16 @@ long val;
|
|||||||
buf[3] = val & 0xff;
|
buf[3] = val & 0xff;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case RELOC_10:
|
||||||
|
if (((val > 0) && (val & ~0x3ff))
|
||||||
|
|| ((val < 0) && (~(val - 1) & ~0x3ff))) {
|
||||||
|
as_bad("relocation overflow.");
|
||||||
|
} /* on overflow */
|
||||||
|
|
||||||
|
buf[2] = (val >> 8) & 0x3;
|
||||||
|
buf[3] = val & 0xff;
|
||||||
|
break;
|
||||||
|
|
||||||
case RELOC_WDISP2_14:
|
case RELOC_WDISP2_14:
|
||||||
if (((val > 0) && (val & ~0x3fffc))
|
if (((val > 0) && (val & ~0x3fffc))
|
||||||
|| ((val < 0) && (~(val - 1) & ~0x3fffc))) {
|
|| ((val < 0) && (~(val - 1) & ~0x3fffc))) {
|
||||||
|
Reference in New Issue
Block a user