This is the mail archive of the binutils@sourceware.org mailing list for the binutils project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[MIPS] Add new virtualization instructions


Hi all,
  MIPS released their virtualization module for MIPS64r5 yesterday:
https://www.mips.com/secure-download/index.dot?product_name=/auth/MD00846-2B-VZMIPS32-AFP-01.03.pdf
https://www.mips.com/secure-download/index.dot?product_name=/auth/MD00847-2B-VZMIPS64-AFP-01.03.pdf

This patch adds a new -mvirt option to gas and allows the instructions to be enabled via ".set virt" just like the other ASEs (note this is really a module to the spec).

OK?  Build and tested for mips64-linux-gnu with no regressions.

Thanks,
Andrew Pinski

gas/ChangeLog:
* config/tc-mips.c (struct mips_set_options): New ase_virt field.
(mips_opts): Update for the new field.
(file_ase_virt): New variable.
(ISA_SUPPORTS_VIRT_ASE): New macro.
(MIPS_CPU_ASE_VIRT): New define.
(is_opcode_valid): Handle ase_virt.
(macro_build): Handle "+J".
(validate_mips_insn): Likewise.
(mips_ip): Likewise.
(enum options): Add OPTION_VIRT and OPTION_NO_VIRT.
(md_longopts): Add mvirt and mnovirt
(md_parse_option): Handle OPTION_VIRT and OPTION_NO_VIRT.
(mips_after_parse_args): Handle ase_virt field.
(s_mipsset): Handle "virt" and "novirt".
(mips_elf_final_processing): Add a comment about virt ASE might need a new flag.
(md_show_usage): Print out the usage of -mvirt and mno-virt options.

gas/testsuite/ChangeLog:
* gas/mips/mips.exp: Run virt testcase also.
* gas/mips/virt.d: New file.
* gas/mips/virt.s: New file.

include/opcode/ChangeLog:
* mips.h (OP_MASK_CODE10): Correct definition.
(OP_SH_CODE10): Likewise.
Add a comment that "+J" is used now for OP_*CODE10.
(INSN_ASE_MASK): Update.
(INSN_VIRT): New macro.

opcodes/ChangeLog:
* mips-dis.c (mips_arch_choices): Add INSN_VIRT to mips32r2 and mips64r2.
(print_insn_args): Handle "+J".
* mips-opc.c (IVIRT): New define.
(mips_builtin_opcodes): Add dmfgc0, dmtgc0, hypcall, mfgc0, mtgc0,
tlbgr, tlbgwi, tlbginv, tlbginvf, tlbgwr, tlbgp VIRT instructions.
Move rfe to the bottom as it conflicts with tlbgp.











Attachment: addvirt.diff.txt
Description: addvirt.diff.txt


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]