mirror of
https://sourceware.org/git/binutils-gdb.git
synced 2024-12-27 04:52:05 +08:00
328e7bfdde
When generating relocation (tc_gen_reloc) 32 bit relocation fixup is changed to new 32 bit PC relative relocation if the fixup has pc-relative flag set. bfd/ChangeLog 2015-07-06 Pitchumani Sivanupandi <pitchumani.s@atmel.com> * elf32-avr.c: Add 32 bit PC relative relocation for AVR target. gas/ChangeLog 2015-07-06 Pitchumani Sivanupandi <pitchumani.s@atmel.com> * config/tc-avr.c (tc_gen_reloc): Change 32 bit relocation to 32 bit PC relative and update offset if the fixup is pc-relative. * config/tc-avr.h (DIFF_EXPR_OK): Define to enable PC relative diff relocs. gas/testsuite/ChangeLog 2015-07-06 Pitchumani Sivanupandi <pitchumani.s@atmel.com> * gas/avr/pc-relative-reloc.d: New test for 32 bit pc relative reloc. * gas/avr/per-function-debugline.s: New test source. include/ChangeLog 2015-07-06 Pitchumani Sivanupandi <pitchumani.s@atmel.com> * elf/avr.h: Add new 32 bit PC relative relocation. ld/testsuite/ChangeLog 2015-07-06 Pitchumani Sivanupandi <pitchumani.s@atmel.com> * ld-avr/gc-section-debugline.d: New test. * ld-avr/per-function-debugline.s: Source for new test.
85 lines
1.3 KiB
ArmAsm
85 lines
1.3 KiB
ArmAsm
.file "per-function-debugline.s"
|
|
__SP_H__ = 0x3e
|
|
__SP_L__ = 0x3d
|
|
__SREG__ = 0x3f
|
|
__RAMPZ__ = 0x3b
|
|
__tmp_reg__ = 0
|
|
__zero_reg__ = 1
|
|
.comm g,2,1
|
|
.section .text.bar,"ax",@progbits
|
|
.global bar
|
|
.type bar, @function
|
|
bar:
|
|
push r28
|
|
push r29
|
|
rcall .
|
|
in r28,__SP_L__
|
|
in r29,__SP_H__
|
|
/* prologue: function */
|
|
/* frame size = 2 */
|
|
/* stack size = 4 */
|
|
.L__stack_usage = 4
|
|
ldd r24,Y+1
|
|
ldd r25,Y+2
|
|
adiw r24,1
|
|
std Y+2,r25
|
|
std Y+1,r24
|
|
nop
|
|
/* epilogue start */
|
|
pop __tmp_reg__
|
|
pop __tmp_reg__
|
|
pop r29
|
|
pop r28
|
|
ret
|
|
.size bar, .-bar
|
|
.section .text.foo,"ax",@progbits
|
|
.global foo
|
|
.type foo, @function
|
|
foo:
|
|
push r28
|
|
push r29
|
|
in r28,__SP_L__
|
|
in r29,__SP_H__
|
|
/* prologue: function */
|
|
/* frame size = 0 */
|
|
/* stack size = 2 */
|
|
.L__stack_usage = 2
|
|
lds r24,g
|
|
lds r25,g+1
|
|
adiw r24,1
|
|
sts g+1,r25
|
|
sts g,r24
|
|
nop
|
|
/* epilogue start */
|
|
pop r29
|
|
pop r28
|
|
ret
|
|
.size foo, .-foo
|
|
.section .text.main,"ax",@progbits
|
|
.global main
|
|
.type main, @function
|
|
main:
|
|
push r28
|
|
push r29
|
|
in r28,__SP_L__
|
|
in r29,__SP_H__
|
|
/* prologue: function */
|
|
/* frame size = 0 */
|
|
/* stack size = 2 */
|
|
.L__stack_usage = 2
|
|
call foo
|
|
lds r24,g
|
|
lds r25,g+1
|
|
sbiw r24,1
|
|
sts g+1,r25
|
|
sts g,r24
|
|
lds r24,g
|
|
lds r25,g+1
|
|
/* epilogue start */
|
|
pop r29
|
|
pop r28
|
|
ret
|
|
.size main, .-main
|
|
.ident "GCC: (GNU) 6.0.0 20150630 (experimental)"
|
|
.global __do_clear_bss
|