Mercurial > hg > CbC > CbC_gcc
diff gcc/gengenrtl.c @ 131:84e7813d76e9
gcc-8.2
author | mir3636 |
---|---|
date | Thu, 25 Oct 2018 07:37:49 +0900 |
parents | 04ced10e8804 |
children | 1830386684a0 |
line wrap: on
line diff
--- a/gcc/gengenrtl.c Fri Oct 27 22:46:09 2017 +0900 +++ b/gcc/gengenrtl.c Thu Oct 25 07:37:49 2018 +0900 @@ -1,5 +1,5 @@ /* Generate code to allocate RTL structures. - Copyright (C) 1997-2017 Free Software Foundation, Inc. + Copyright (C) 1997-2018 Free Software Foundation, Inc. This file is part of GCC. @@ -54,6 +54,9 @@ case 'w': return "HOST_WIDE_INT "; + case 'p': + return "poly_uint16 "; + case 's': return "const char *"; @@ -156,6 +159,7 @@ return (strcmp (defs[idx].enumname, "VAR_LOCATION") == 0 || strcmp (defs[idx].enumname, "CONST_DOUBLE") == 0 || strcmp (defs[idx].enumname, "CONST_WIDE_INT") == 0 + || strcmp (defs[idx].enumname, "CONST_POLY_INT") == 0 || strcmp (defs[idx].enumname, "CONST_FIXED") == 0); } @@ -255,10 +259,12 @@ puts (" PUT_MODE_RAW (rt, mode);"); for (p = format, i = j = 0; *p ; ++p, ++i) - if (*p != '0') + if (*p == '0') + printf (" X0EXP (rt, %d) = NULL_RTX;\n", i); + else if (*p == 'p') + printf (" SUBREG_BYTE (rt) = arg%d;\n", j++); + else printf (" %s (rt, %d) = arg%d;\n", accessor_from_format (*p), i, j++); - else - printf (" X0EXP (rt, %d) = NULL_RTX;\n", i); puts ("\n return rt;\n}\n"); printf ("#define gen_rtx_fmt_%s(c, m", format);