re PR rtl-optimization/13313 (Wrong code generated)
PR optimization/13313 * combine.c (make_extraction) [REG]: Do not use gen_lowpart_for_combine when POS is non-zero. From-SVN: r74676
This commit is contained in:
parent
cbefa3c9a2
commit
91f8389c1b
|
@ -1,3 +1,9 @@
|
|||
2003-12-16 Eric Botcazou <ebotcazou@libertysurf.fr>
|
||||
|
||||
PR optimization/13313
|
||||
* combine.c (make_extraction) [REG]: Do not use
|
||||
gen_lowpart_for_combine when POS is non-zero.
|
||||
|
||||
2003-12-16 Hartmut Penner <hpenner@de.ibm.com>
|
||||
|
||||
* altivec.h (vec_cmple, vec_all_numeric): Fix typo.
|
||||
|
|
|
@ -6043,10 +6043,11 @@ make_extraction (enum machine_mode mode, rtx inner, HOST_WIDE_INT pos,
|
|||
{
|
||||
if (tmode != inner_mode)
|
||||
{
|
||||
if (in_dest)
|
||||
/* We can't call gen_lowpart_for_combine in a DEST since we
|
||||
always want a SUBREG (see below) and it would sometimes
|
||||
return a new hard register. */
|
||||
if (pos || in_dest)
|
||||
{
|
||||
/* We can't call gen_lowpart_for_combine here since we always want
|
||||
a SUBREG and it would sometimes return a new hard register. */
|
||||
HOST_WIDE_INT final_word = pos / BITS_PER_WORD;
|
||||
|
||||
if (WORDS_BIG_ENDIAN
|
||||
|
|
|
@ -1,3 +1,7 @@
|
|||
2003-12-16 Eric Botcazou <ebotcazou@libertysurf.fr>
|
||||
|
||||
* gcc.c-torture/execute/20031216-1.c: New test.
|
||||
|
||||
2003-12-16 Giovanni Bajo <giovannibajo@gcc.gnu.org>
|
||||
|
||||
* g++.dg/template/ptrmem7.C: Simplified the test case to not hit
|
||||
|
@ -134,10 +138,10 @@
|
|||
* g++.dg/ext/visibility-5.C: Likewise.
|
||||
* g++.dg/ext/visibility-6.C: Likewise.
|
||||
|
||||
2003-12-07 Giovanni Bajo <giovannibajo@gcc.gnu.org>
|
||||
|
||||
* g++.dg/lookup/java1.C: New test.
|
||||
* g++.dg/lookup/java2.C: New test.
|
||||
2003-12-07 Giovanni Bajo <giovannibajo@gcc.gnu.org>
|
||||
|
||||
* g++.dg/lookup/java1.C: New test.
|
||||
* g++.dg/lookup/java2.C: New test.
|
||||
|
||||
2003-12-07 Falk Hueffner <falk@debian.org>
|
||||
|
||||
|
|
|
@ -0,0 +1,23 @@
|
|||
/* PR optimization/13313 */
|
||||
/* Origin: Mike Lerwill <mike@ml-solutions.co.uk> */
|
||||
|
||||
extern void abort(void);
|
||||
|
||||
void DisplayNumber (unsigned long v)
|
||||
{
|
||||
if (v != 0x9aL)
|
||||
abort();
|
||||
}
|
||||
|
||||
unsigned long ReadNumber (void)
|
||||
{
|
||||
return 0x009a0000L;
|
||||
}
|
||||
|
||||
int main (void)
|
||||
{
|
||||
unsigned long tmp;
|
||||
tmp = (ReadNumber() & 0x00ff0000L) >> 16;
|
||||
DisplayNumber (tmp);
|
||||
return 0;
|
||||
}
|
Loading…
Reference in New Issue