Commit 08a4a761 by Uros Bizjak Committed by Uros Bizjak

re PR target/22093 (Unaligned access to HI values causes unrecognizable insn error)

	PR target/22093
	* config/alpha/alpha.md (unaligned_storehi_be): Force operand
	of plus RTX into register.

testsuite/ChangeLog:

	PR target/22093
	* gcc.target/alpha/pr22093.c: New test.

From-SVN: r152322
parent c03c5248
2009-09-30 Uros Bizjak <ubizjak@gmail.com>
PR target/22093
* config/alpha/alpha.md (unaligned_storehi_be): Force operand
of plus RTX into register.
2009-09-30 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
* doc/install.texi: Linguistic and markup fixes.
......@@ -5861,7 +5861,7 @@
(mem:DI (and:DI (match_operand:DI 0 "address_operand" "")
(const_int -8))))
(set (match_operand:DI 2 "register_operand" "")
(plus:DI (match_dup 0) (const_int 1)))
(plus:DI (match_dup 5) (const_int 1)))
(set (match_dup 3)
(and:DI (not:DI (ashift:DI
(const_int 65535)
......@@ -5876,7 +5876,7 @@
(set (mem:DI (and:DI (match_dup 0) (const_int -8)))
(match_dup 4))]
"WORDS_BIG_ENDIAN"
"")
"operands[5] = force_reg (DImode, operands[0]);")
;; Here are the define_expand's for QI and HI moves that use the above
;; patterns. We have the normal sets, plus the ones that need scratch
......
2009-09-30 Uros Bizjak <ubizjak@gmail.com>
PR target/22093
* gcc.target/alpha/pr22093.c: New test.
2009-09-29 John Freeman <jfreeman08@gmail.com>
Jason Merrill <jason@redhat.com>
......
/* { dg-do compile } */
/* { dg-options "-O2" } */
struct shared_ptr_struct
{
unsigned long phase : 48;
unsigned thread : 16;
void *addr;
} x;
void foo (void)
{
x.thread = 2;
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment