From 9dac5f646c025a82c2dfb841db019fc8e1e77945 Mon Sep 17 00:00:00 2001 From: John van Groningen Date: Fri, 24 Mar 2006 11:26:30 +0000 Subject: remove use of scratch register on IA32 for shift instructions (by adding instruction with extra register), IScc, IFScc, IFBcc (by adding IFCcc instructions with extra register), ICMPW (not used anymore) prevent generating FLD and FSTP instructions between FCOMP and FNSTSW instruction --- cgiconst.h | 28 +++++++++++++++++++--------- 1 file changed, 19 insertions(+), 9 deletions(-) (limited to 'cgiconst.h') diff --git a/cgiconst.h b/cgiconst.h index 74d8d9f..fe4d373 100644 --- a/cgiconst.h +++ b/cgiconst.h @@ -12,19 +12,23 @@ enum { IADD, IAND, IASR, IBEQ, IBGE, IBGEU, IBGT, IBGTU, IBLE, IBLEU, IBLT, IBLTU, IBNE, IBNO, - IBO, ICMP, ICMPW, IDIV, IEOR, IEXG, IEXT, - IFADD, IFBEQ, IFBGE, IFBGT, IFBLE, IFBLT, IFBNE, - IFABS, IFCMP, IFCOS, IFDIV, IFMUL, IFNEG, IFREM, - IFSEQ, IFSGE, IFSGT, IFSIN, IFSLE, IFSLT, IFSNE, - IFSUB, IFTAN, IFTST, IFMOVE, IFMOVEL, IJMP, IJSR, - ILEA, ILSL, ILSR, IMOD, IMOVE, IMOVEB, IMOVEW, - IMUL, INEG, IOR, IRTS, ISCHEDULE, ISEQ, ISGE, - ISGEU, ISGT, ISGTU, ISLE, ISLEU, ISLT, ISLTU, - ISNE, ISNO, ISO, ISUB, ITST, IWORD + IBO, ICMP, IDIV, IEOR, IEXG, IEXT, IFADD, +#if ! (defined (I486) && !defined (G_A64)) + IFBEQ, IFBGE, IFBGT, IFBLE, IFBLT, IFBNE, +#endif + IFABS, + IFCMP, IFCOS, IFDIV, IFMUL, IFNEG, IFREM, IFSEQ, + IFSGE, IFSGT, IFSIN, IFSLE, IFSLT, IFSNE, IFSUB, + IFTAN, IFTST, IFMOVE, IFMOVEL, IJMP, IJSR, ILEA, + ILSL, ILSR, IMOD, IMOVE, IMOVEB, IMOVEW, IMUL, + INEG, IOR, IRTS, ISCHEDULE, ISEQ, ISGE, ISGEU, + ISGT, ISGTU, ISLE, ISLEU, ISLT, ISLTU, ISNE, + ISNO, ISO, ISUB, ITST, IWORD #if !defined (G_POWER) ,IFSQRT #endif #ifdef M68000 + ,ICMPW ,IFACOS, IFASIN, IFATAN, IFEXP, IFLN, IFLOG10, IBMI, IBMOVE, IMOVEM, ITSTB #endif @@ -44,6 +48,12 @@ enum { ,IADDI, ILSLI ,IADDO, ISUBO #endif +#ifdef I486 + ,IASR_S,ILSL_S,ILSR_S +#endif +#if defined (I486) && !defined (G_A64) + ,IFCEQ, IFCGE, IFCGT, IFCLE, IFCLT, IFCNE +#endif #ifdef G_POWER ,ICMPLW ,IMULO -- cgit v1.2.3