mirror of
git://gcc.gnu.org/git/gcc.git
synced 2025-03-08 07:26:44 +08:00
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:
parent
9d29e7afe1
commit
7c4a6db023
@ -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.
|
||||
|
11
gcc/expr.c
11
gcc/expr.c
@ -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,
|
||||
|
Loading…
Reference in New Issue
Block a user