aboutsummaryrefslogtreecommitdiff
path: root/libctf/NEWS
diff options
context:
space:
mode:
authorGeorg-Johann Lay <avr@gjlay.de>2025-02-16 18:43:56 +0100
committerGeorg-Johann Lay <avr@gjlay.de>2025-03-07 11:52:14 +0100
commit0d93e61c318823da567053d8f1561c78e2efcf06 (patch)
tree309dc1f2e78d7e4a3cffd01637574190f13bd5b7 /libctf/NEWS
parent15d8ef5b3688c9059464a44002009ff470a46977 (diff)
downloadgdb-master.zip
gdb-master.tar.gz
gdb-master.tar.bz2
AVR: gas/32704 - Improve code generation for __gcc_isr.HEADmaster
The prologue generated by __gcc_isr can be improved in situations where: * ZERO_REG is needed, and * SREG is not clobbered by the ISR, and * avr-gcc provides a GPR >= R16 with the Done chunk, and * Code generation is for ordinary AVRs (not AVRrc). For example, the prologue for volatile char var; __attribute__((signal)) void __vector_1 (void) { var = 1; var = 0; } may be 00000000 <__vector_1>: 0: 8f 93 push r24 2: 1f 92 push r1 4: 80 e0 ldi r24, 0 6: 18 2e mov r1, r24 instead of the code as currently generated by GAS: 00000000 <__vector_1>: 0: 1f 92 push r1 2: 1f b6 in r1, SREG 4: 1f 92 push r1 6: 11 24 clr r1 8: 8f 93 push r24 which consumes more stack, time and code than needed. gas/ PR gas/32704 PR gas/21683 * config/tc-avr.c (avr_isr): bool-ize. (avr_emit_insn): Emit "mov" code as MOV R1,<reg>. (avr_isr_stack_t): New typedef. (avr_emit_push, avr_emit_pop): New static functions. (avr_patch_gccisr_frag): Overhaul prologue and epilogue generation.
Diffstat (limited to 'libctf/NEWS')
0 files changed, 0 insertions, 0 deletions