This is a series of patches that add support for the SPARC M7 cpu to

binutils.  They were discussed and approved here:

  https://sourceware.org/ml/binutils/2014-10/msg00038.html
This commit is contained in:
Jose E. Marchesi
2014-10-09 13:16:53 +01:00
committed by Nick Clifton
parent fcbdedf866
commit 3d68f91c0f
26 changed files with 2036 additions and 1378 deletions

View File

@@ -1,3 +1,24 @@
2014-10-09 Jose E. Marchesi <jose.marchesi@oracle.com>
* sparc-opc.c (sparc-opcodes): Remove instructions `chkpt',
`commit', `random', `wr r,r,%cps', `wr r,i,%cps' and `rd %cps,r'.
Annotate table with HWCAP2 bits.
Add instructions xmontmul, xmontsqr, xmpmul.
(sparc-opcodes): Add the `mwait', `wr r,r,%mwait', `wr
r,i,%mwait' and `rd %mwait,r' instructions.
Add rd/wr instructions for accessing the %mcdper ancillary state
register.
(sparc-opcodes): Add sparc5/vis4.0 instructions:
subxc, subxccc, fpadd8, fpadds8, fpaddus8, fpaddus16, fpcmple8,
fpcmpgt8, fpcmpule16, fpcmpugt16, fpcmpule32, fpcmpugt32, fpmax8,
fpmax16, fpmax32, fpmaxu8, fpmaxu16, fpmaxu32, fpmin8, fpmin16,
fpmin32, fpminu8, fpminu16, fpminu32, fpsub8, fpsubs8, fpsubus8,
fpsubus16, and faligndatai.
* sparc-dis.c (v9a_asr_reg_names): Add the %mwait (%asr28)
ancillary state register to the table.
(print_insn_sparc): Handle the %mcdper ancillary state register.
(print_insn_sparc): Handle new operand type '}'.
2014-09-22 H.J. Lu <hongjiu.lu@intel.com>
* i386-dis.c (MOD_0F20): Removed.

View File

@@ -106,7 +106,7 @@ static char *v9a_asr_reg_names[] =
{
"pcr", "pic", "dcr", "gsr", "set_softint", "clear_softint",
"softint", "tick_cmpr", "stick", "stick_cmpr", "cfr",
"pause", "cps"
"pause", "mwait"
};
/* Macros used to extract instruction fields. Not all fields have
@@ -656,6 +656,7 @@ print_insn_sparc (bfd_vma memaddr, disassemble_info *info)
break;
case 'H': /* Double/even. */
case 'J': /* Quad/multiple of 4. */
case '}': /* Double/even. */
fregx (X_RD (insn));
break;
#undef freg
@@ -793,6 +794,10 @@ print_insn_sparc (bfd_vma memaddr, disassemble_info *info)
(*info->fprintf_func) (stream, "%%fprs");
break;
case '{':
(*info->fprintf_func) (stream, "%%mcdper");
break;
case 'o':
(*info->fprintf_func) (stream, "%%asi");
break;

File diff suppressed because it is too large Load Diff