summaryrefslogtreecommitdiff
path: root/gcc/expmed.c
diff options
context:
space:
mode:
authorrth <rth@138bc75d-0d04-0410-961f-82ee72b054a4>2002-04-26 02:09:21 +0000
committerrth <rth@138bc75d-0d04-0410-961f-82ee72b054a4>2002-04-26 02:09:21 +0000
commitc601dd7db3a109db68bbe1e259dda0ea5ad18975 (patch)
tree4a931fb3b190e74b7b06146ab1b95ce028e29ffc /gcc/expmed.c
parenta9f2a3a07b7cc0a848ed9314869a16e2f95cb920 (diff)
downloadgcc-c601dd7db3a109db68bbe1e259dda0ea5ad18975.tar.gz
PR c/2035
* expmed.c (extract_bit_field): Fall through to generic code rather than aborting on subreg special case. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@52777 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/expmed.c')
-rw-r--r--gcc/expmed.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/gcc/expmed.c b/gcc/expmed.c
index e60ccbf7924..5a4c24ea68a 100644
--- a/gcc/expmed.c
+++ b/gcc/expmed.c
@@ -1144,7 +1144,7 @@ extract_bit_field (str_rtx, bitsize, bitnum, unsignedp,
/* Else we've got some float mode source being extracted into
a different float mode destination -- this combination of
subregs results in Severe Tire Damage. */
- abort ();
+ goto no_subreg_mode_swap;
}
if (GET_CODE (op0) == REG)
op0 = gen_rtx_SUBREG (mode1, op0, byte_offset);
@@ -1155,6 +1155,7 @@ extract_bit_field (str_rtx, bitsize, bitnum, unsignedp,
return convert_to_mode (tmode, op0, unsignedp);
return op0;
}
+ no_subreg_mode_swap:
/* Handle fields bigger than a word. */