binutils-gdb/ld/testsuite/ld-avr/per-function-debugline.s
Denis Chertykov 328e7bfdde Define DIFF_EXPR_OK for avr target to allow PC relative difference relocation.
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.
2015-07-08 21:41:52 +03:00

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