home *** CD-ROM | disk | FTP | other *** search
/ SPACE 2 / SPACE - Library 2 - Volume 1.iso / program / 320 / compsrc2 / insn-pee.c < prev    next >
Encoding:
C/C++ Source or Header  |  1988-10-20  |  1.8 KB  |  69 lines

  1. /* Generated automatically by the program `genpeep'
  2. from the machine description file `md'.  */
  3.  
  4. #include "rtl.h"
  5.  
  6. #include "config.h"
  7.  
  8. #include "regs.h"
  9.  
  10. extern rtx peep_operand[];
  11.  
  12. #define operands peep_operand
  13.  
  14. int
  15. peephole (ins1)
  16.      rtx ins1;
  17. {
  18.   rtx insn, x, pat;
  19.   int i;
  20.   insn = ins1;
  21.   if (GET_CODE (insn) == CODE_LABEL) goto L203;
  22.   pat = PATTERN (insn);
  23.   x = pat;
  24.   if (GET_CODE (x) != SET) goto L203;
  25.   x = XEXP (pat, 0);
  26.   if (GET_CODE (x) != REG) goto L203;
  27.   if (GET_MODE (x) != SImode) goto L203;
  28.   if (XINT (x, 0) != 15) goto L203;
  29.   x = XEXP (pat, 1);
  30.   if (GET_CODE (x) != PLUS) goto L203;
  31.   if (GET_MODE (x) != SImode) goto L203;
  32.   x = XEXP (XEXP (pat, 1), 0);
  33.   if (GET_CODE (x) != REG) goto L203;
  34.   if (GET_MODE (x) != SImode) goto L203;
  35.   if (XINT (x, 0) != 15) goto L203;
  36.   x = XEXP (XEXP (pat, 1), 1);
  37.   if (GET_CODE (x) != CONST_INT) goto L203;
  38.   if (XINT (x, 0) != 4) goto L203;
  39.   do { insn = NEXT_INSN (insn);
  40.        if (insn == 0) goto L203; }
  41.   while (GET_CODE (insn) == NOTE);
  42.   if (GET_CODE (insn) == CODE_LABEL) goto L203;
  43.   pat = PATTERN (insn);
  44.   x = pat;
  45.   if (GET_CODE (x) != SET) goto L203;
  46.   x = XEXP (pat, 0);
  47.   operands[0] = x;
  48.   if (! register_operand (x, DFmode)) goto L203;
  49.   x = XEXP (pat, 1);
  50.   operands[1] = x;
  51.   if (! register_operand (x, DFmode)) goto L203;
  52.   if (! (FP_REG_P (operands[0]) && ! FP_REG_P (operands[1]))) goto L203;
  53.   PATTERN (ins1) = gen_rtx (PARALLEL, VOIDmode, gen_rtvec_v (2, operands));
  54.   insn = ins1;
  55.   for (i = 0; i < 2; i++)
  56.     if (GET_CODE (operands[i]) == CODE_LABEL)
  57.       LABEL_NUSES (operands[i])++;
  58.   INSN_CODE (insn) = 203;
  59.   do insn = NEXT_INSN (insn);
  60.   while (GET_CODE (insn) == NOTE);
  61.   delete_insn (insn);
  62.   return 1;
  63.  L203:
  64.  
  65.   return 0;
  66. }
  67.  
  68. rtx peep_operand[2];
  69.