home *** CD-ROM | disk | FTP | other *** search
/ Otherware / Otherware_1_SB_Development.iso / amiga / programm / language / gcc222.lha / src-patches / gcc-memory-diffs < prev    next >
Encoding:
Text File  |  1992-08-04  |  2.0 KB  |  68 lines

  1. *** /dh1/gcc-2.2.2/stmt.c    Mon May 25 19:53:22 1992
  2. --- stmt.c    Sun Jul 19 21:23:00 1992
  3. ***************
  4. *** 1013,1017 ****
  5.       {
  6.         char *regname = TREE_STRING_POINTER (TREE_VALUE (tail));
  7. !       if (decode_reg_name (regname) >= 0)
  8.       ++nclobbers;
  9.       }
  10. --- 1010,1015 ----
  11.       {
  12.         char *regname = TREE_STRING_POINTER (TREE_VALUE (tail));
  13. !       i = decode_reg_name (regname);
  14. !       if (i >= 0 || i == -4)
  15.       ++nclobbers;
  16.       }
  17. ***************
  18. *** 1184,1190 ****
  19.         if (j < 0)
  20.           {
  21. !           if (j == -3)
  22.           continue;
  23.   
  24.             error ("unknown register name `%s' in `asm'", regname);
  25.             return;
  26. --- 1182,1194 ----
  27.         if (j < 0)
  28.           {
  29. !           if (j == -3)    /* `cc', which is not a register */
  30.           continue;
  31.   
  32. +           if (j == -4)    /* `memory', don't cache memory across asm */
  33. +         {
  34. +           XVECEXP (body, 0, i++) = gen_rtx (CLOBBER, VOIDmode, const0_rtx);
  35. +           continue;
  36. +         }
  37.             error ("unknown register name `%s' in `asm'", regname);
  38.             return;
  39. *** /dh1/gcc-2.2.2/varasm.c    Thu May 21 18:24:40 1992
  40. --- varasm.c    Sun Jul 19 21:22:28 1992
  41. ***************
  42. *** 213,218 ****
  43.   /* Decode an `asm' spec for a declaration as a register name.
  44.      Return the register number, or -1 if nothing specified,
  45. !    or -2 if the ASMSPEC is not `cc' and is not recognized,
  46. !    or -3 if ASMSPEC is `cc' and is not recognized.
  47.      Accept an exact spelling or a decimal number.
  48.      Prefixes such as % are optional.  */
  49. --- 214,220 ----
  50.   /* Decode an `asm' spec for a declaration as a register name.
  51.      Return the register number, or -1 if nothing specified,
  52. !    or -2 if the ASMSPEC is not `cc' or `memory' and is not recognized,
  53. !    or -3 if ASMSPEC is `cc' and is not recognized,
  54. !    or -4 if ASMSPEC is `memory' and is not recognized.
  55.      Accept an exact spelling or a decimal number.
  56.      Prefixes such as % are optional.  */
  57. ***************
  58. *** 258,261 ****
  59. --- 260,266 ----
  60.   #endif /* ADDITIONAL_REGISTER_NAMES */
  61.   
  62. +       if (!strcmp (asmspec, "memory"))
  63. +     return -4;
  64.         if (!strcmp (asmspec, "cc"))
  65.       return -3;
  66.