• Peter Bergner's avatar
    gas/ · 066be9f7
    Peter Bergner authored
    	* config/tc-ppc.c (pre_defined_registers): Add "f32" to "f63",
    	"f.32" to "f.63", "vs0" to "vs63" and "vs.0" to "vs.63".
    	(parse_cpu): Extend -mpower7 to accept power7 and isel instructions.
    
    gas/testsuite/
    	* gas/ppc/e500mc.d ("wait", "waitsrv", "waitimpl"): Add tests.
    	* gas/ppc/e500mc.s: Likewise.
    	* gas/ppc/power6.d ("cdtbcd", "cbcdtd", "addg6s"): Add tests.
    	* gas/ppc/power6.s: Likewise.
    	* gas/ppc/power7.d ("lfdpx", "mffgpr", "mftgpr"): Remove invalid tests.
    	("wait", "waitsrv", "waitimpl", "divwe", "divwe.", "divweo", "divweo.",
    	"divweu", "divweu.", "divweuo", "divweuo.", "bpermd", "popcntw",
    	"popcntd", "ldbrx", "stdbrx", "lfiwzx", "lfiwzx", "fcfids", "fcfids.",
    	"fcfidus", "fcfidus.", "fctiwu", "fctiwu.", "fctiwuz", "fctiwuz.",
    	"fctidu", "fctidu.", "fctiduz", "fctiduz.", "fcfidu", "fcfidu.",
    	"ftdiv", "ftdiv", "ftsqrt", "ftsqrt", "dcbtt", "dcbtstt", "dcffix",
    	"dcffix.", "lbarx", "lbarx", "lbarx", "lharx", "lharx", "lharx",
    	"stbcx.", "sthcx.", "fre", "fre.", "fres", "fres.", "frsqrte",
    	"frsqrte.", "frsqrtes", "frsqrtes.", "isel"): Add tests.
    	* gas/ppc/power7.s: Likewise.
    	* gas/ppc/vsx.d: New test.
    	* gas/ppc/vsx.s: Likewise.
    	* gas/ppc/ppc.exp: Run it.
    
    include/opcode/
    	* ppc.h (PPC_OPCODE_POWER7): New.
    
    opcodes/
    	* ppc-dis.c (powerpc_init_dialect): Extend -Mpower7 to disassemble
    	the power7 and the isel instructions.
    	* ppc-opc.c (insert_xc6, extract_xc6): New static functions.
    	(insert_dm, extract_dm): Likewise.
    	(XB6): Update comment to include XX2 form.
    	(WC, XC6, SHW, DMEX, UIM, XX2, XX3RC, XX4, XX2_MASK, XX2UIM_MASK,
    	XX2BF_MASK, XX3BF_MASK, XX3SHW_MASK, XX4_MASK, XWC_MASK, POWER7): New.
    	(RemoveXX3DM): Delete.
    	(powerpc_opcodes): <"lfdp", "lfdpx", "mcrxr", "mftb", "mffgpr",
    	"mftgpr">: Deprecate for POWER7.
    	<"fres", "fres.", "frsqrtes", "frsqrtes.", "fre", "fre.", "frsqrte",
    	"frsqrte.">: Deprecate the three operand form and enable the two
    	operand form for POWER7 and later.
    	<"wait">: Extend to accept optional parameter.  Enable for POWER7.
    	<"waitsrv", "waitimpl">: Add extended opcodes.
    	<"ldbrx", "stdbrx">: Enable for POWER7.
    	<"cdtbcd", "cbcdtd", "addg6s">: Add POWER6 opcodes.
    	<"bpermd", "dcbtstt", "dcbtt", "dcffix.", "dcffix", "divde.", "divde",
    	"divdeo.", "divdeo", "divdeu.", "divdeu", "divdeuo.", "divdeuo",
    	"divwe.", "divwe", "divweo.", "divweo", "divweu.", "divweu", "divweuo.",
    	"divweuo", "fcfids.", "fcfids", "fcfidu.", "fcfidu", "fcfidus.",
    	"fcfidus", "fctidu.", "fctidu", "fctiduz.", "fctiduz", "fctiwu.",
    	"fctiwu", "fctiwuz.", "fctiwuz", "ftdiv", "ftsqrt", "lbarx", "lfiwzx",
    	"lharx", "popcntd", "popcntw", "stbcx.", "sthcx.">: Add POWER7 opcodes.
    	<"lxsdux", "lxsdx", "lxvdsx", "lxvw4ux", "lxvw4x", "stxsdux", "stxsdx",
    	"stxvw4ux", "stxvw4x", "xsabsdp", "xsadddp", "xscmpodp", "xscmpudp",
    	"xscpsgndp", "xscvdpsp", "xscvdpsxds", "xscvdpsxws", "xscvdpuxds",
    	"xscvdpuxws", "xscvspdp", "xscvsxddp", "xscvuxddp", "xsdivdp",
    	"xsmaddadp", "xsmaddmdp", "xsmaxdp", "xsmindp", "xsmsubadp",
    	"xsmsubmdp", "xsmuldp", "xsnabsdp", "xsnegdp", "xsnmaddadp",
    	"xsnmaddmdp", "xsnmsubadp", "xsnmsubmdp", "xsrdpi", "xsrdpic",
    	"xsrdpim", "xsrdpip", "xsrdpiz", "xsredp", "xsrsqrtedp", "xssqrtdp",
    	"xssubdp", "xstdivdp", "xstsqrtdp", "xvabsdp", "xvabssp", "xvadddp",
    	"xvaddsp", "xvcmpeqdp.", "xvcmpeqdp", "xvcmpeqsp.", "xvcmpeqsp",
    	"xvcmpgedp.", "xvcmpgedp", "xvcmpgesp.", "xvcmpgesp", "xvcmpgtdp.",
    	"xvcmpgtdp", "xvcmpgtsp.", "xvcmpgtsp", "xvcpsgnsp", "xvcvdpsp",
    	"xvcvdpsxds", "xvcvdpsxws", "xvcvdpuxds", "xvcvdpuxws", "xvcvspdp",
    	"xvcvspsxds", "xvcvspsxws", "xvcvspuxds", "xvcvspuxws", "xvcvsxddp",
    	"xvcvsxdsp", "xvcvsxwdp", "xvcvsxwsp", "xvcvuxddp", "xvcvuxdsp",
    	"xvcvuxwdp", "xvcvuxwsp", "xvdivdp", "xvdivsp", "xvmaddadp",
    	"xvmaddasp", "xvmaddmdp", "xvmaddmsp", "xvmaxdp", "xvmaxsp",
    	"xvmindp", "xvminsp", "xvmovsp", "xvmsubadp", "xvmsubasp", "xvmsubmdp",
    	"xvmsubmsp", "xvmuldp", "xvmulsp", "xvnabsdp", "xvnabssp", "xvnegdp",
    	"xvnegsp", "xvnmaddadp", "xvnmaddasp", "xvnmaddmdp", "xvnmaddmsp",
    	"xvnmsubadp", "xvnmsubasp", "xvnmsubmdp", "xvnmsubmsp", "xvrdpi",
    	"xvrdpic", "xvrdpim", "xvrdpip", "xvrdpiz", "xvredp", "xvresp",
    	"xvrspi", "xvrspic", "xvrspim", "xvrspip", "xvrspiz", "xvrsqrtedp",
    	"xvrsqrtesp", "xvsqrtdp", "xvsqrtsp", "xvsubdp", "xvsubsp", "xvtdivdp",
    	"xvtdivsp", "xvtsqrtdp", "xvtsqrtsp", "xxland", "xxlandc", "xxlnor",
    	"xxlor", "xxlxor", "xxmrghw", "xxmrglw", "xxsel", "xxsldwi", "xxspltd",
    	"xxspltw", "xxswapd">: Add VSX opcodes.
    066be9f7
ppc.h 12.7 KB