Allow PARALLEL return value for complex type represented as a CONCAT.

* expr.c (emit_group_load): Allow src to be a CONCAT.

From-SVN: r28546
This commit is contained in:
Jim Wilson 1999-08-06 02:30:39 +00:00 committed by Jim Wilson
parent 9d29e7afe1
commit 7c4a6db023
2 changed files with 15 additions and 0 deletions

View File

@ -1,3 +1,7 @@
Thu Aug 5 19:29:39 1999 Jim Wilson <wilson@cygnus.com>
* expr.c (emit_group_load): Allow src to be a CONCAT.
Thu Aug 5 22:27:15 1999 J"orn Rennecke <amylaar@cygnus.co.uk>
* config/sh/lib1funcs.asm (___movstrSI0): Change or r0,r0,r0 to nop.

View File

@ -1967,6 +1967,17 @@ emit_group_load (dst, orig_src, ssize, align)
plus_constant (XEXP (src, 0),
bytepos)));
}
else if (GET_CODE (src) == CONCAT)
{
if (bytepos == 0
&& bytelen == GET_MODE_SIZE (GET_MODE (XEXP (src, 0))))
tmps[i] = XEXP (src, 0);
else if (bytepos == GET_MODE_SIZE (GET_MODE (XEXP (src, 0)))
&& bytelen == GET_MODE_SIZE (GET_MODE (XEXP (src, 1))))
tmps[i] = XEXP (src, 1);
else
abort ();
}
else
{
tmps[i] = extract_bit_field (src, bytelen*BITS_PER_UNIT,