re PR middle-end/37608 (libgcc2.c:1981: ICE: vector VEC(m em_ref_p,base) index domain...
authorJohn David Anglin <dave.anglin@nrc-cnrc.gc.ca>
Sat, 11 Oct 2008 15:54:27 +0000 (15:54 +0000)
committerJohn David Anglin <danglin@gcc.gnu.org>
Sat, 11 Oct 2008 15:54:27 +0000 (15:54 +0000)
commite40375e0e23145c3140d375d3cf8f164800983ee
treea4e93d66ea422b21cd664acd15b8fd5b210ef62e
parente47911ce2145c3efd181bffc191cf38c7271177c
re PR middle-end/37608 (libgcc2.c:1981: ICE: vector VEC(m em_ref_p,base) index domain error, in create_vop_ref_mapping_loop at tree-ssa-lo op-im.c:1519)

PR middle-end/37608
* pa.md (call, call_value): Generate an rtx for register r4 and pass
it to PIC call patterns.
(call_symref_pic): Revise pattern to expose PIC register save.  Remove
code generation and attributes from pattern.  Change peephole2 to split
for noreturn case.  Revise split pattern for non noreturn case.
(call_symref_64bit, call_reg_pic, call_reg_64bit, call_val_symref_pic,
call_val_symref_64bit, call_val_reg_pic, call_val_reg_64bit): Likewise.
* pa.c (attr_length_call): Simplify extraction of call rtx.  Add some
asserts.

From-SVN: r141063
gcc/ChangeLog
gcc/config/pa/pa.c
gcc/config/pa/pa.md