diff options
author | kan <kan@FreeBSD.org> | 2003-08-22 02:56:07 +0000 |
---|---|---|
committer | kan <kan@FreeBSD.org> | 2003-08-22 02:56:07 +0000 |
commit | 08db0e4d745472adc9c30de407304713c78e950e (patch) | |
tree | aa86de970d24a76b30b53157cf41e9d09ffe4d51 /contrib/gcc/varasm.c | |
parent | 7b704871fdac058719f34a1e6b9de71ee76c5be4 (diff) | |
download | FreeBSD-src-08db0e4d745472adc9c30de407304713c78e950e.zip FreeBSD-src-08db0e4d745472adc9c30de407304713c78e950e.tar.gz |
Gcc 3.3.1-release.
Diffstat (limited to 'contrib/gcc/varasm.c')
-rw-r--r-- | contrib/gcc/varasm.c | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/contrib/gcc/varasm.c b/contrib/gcc/varasm.c index 94be2d4..a7c84cd 100644 --- a/contrib/gcc/varasm.c +++ b/contrib/gcc/varasm.c @@ -4050,6 +4050,23 @@ output_constant (exp, size, align) thissize = MIN (TREE_STRING_LENGTH (exp), size); assemble_string (TREE_STRING_POINTER (exp), thissize); } + else if (TREE_CODE (exp) == VECTOR_CST) + { + int elt_size; + tree link; + unsigned int nalign; + enum machine_mode inner; + + inner = GET_MODE_INNER (TYPE_MODE (TREE_TYPE (exp))); + nalign = MIN (align, GET_MODE_ALIGNMENT (inner)); + + elt_size = GET_MODE_UNIT_SIZE (TYPE_MODE (TREE_TYPE (exp))); + + link = TREE_VECTOR_CST_ELTS (exp); + output_constant (TREE_VALUE (link), elt_size, align); + while ((link = TREE_CHAIN (link)) != NULL) + output_constant (TREE_VALUE (link), elt_size, nalign); + } else abort (); break; |