Hi! This patch generates LDRD instead of POP in epilogue for A15 ARM mode. For optimize_size, original epilogue is generated for A15. The work involves defining new functions, predicates and patterns. In this patch we keep on accumulating non-consecutive registers till register-pair to be popped is found. Then, first POP all the accumulated registers, followed by LDRD with post-stack update for register-pair. We repeat this until all the registers in register-list are POPPed. The patch is tested with check-gcc, check-gdb and bootstrap with no regression. Changelog entry for Patch to emit LDRD for ARM epilogue in A15: 2011-10-11 Sameera Deshpande * config/arm/arm.c (arm_emit_ldrd_pop): New static function. (arm_expand_epilogue): Update. * config/arm/ldmstm.md (arm_ldrd_base): New pattern. (arm_ldr_with_update): Likewise. --