This is the mail archive of the
binutils@sourceware.org
mailing list for the binutils project.
sparc64-elf-as output
- From: Alex Mach <alexvm12e at mail dot ru>
- To: binutils at sourceware dot org
- Date: Thu, 24 Sep 2009 14:04:52 +0400
- Subject: sparc64-elf-as output
- Reply-to: Alex Mach <alexvm12e at mail dot ru>
Hi,
I apply sparc64-elf-as to srt0.s through sparc64-elf-gcc
$(CC) $(CFLAGS) -mcpu=v9 -mtune=ultrasparc -m64 -c -g -o $(OBJS):
.text
.align 4
.global tt0_000
.type tt0_000, #function
tt0_000:
.global por
ba,a por
.empty
.align 32
.size tt0_000,.-tt0_000
and output sparc64-elf-objdump is:
srt0.o: file format elf64-sparc
srt0.o
architecture: sparc:v9, flags 0x00000011:
0000000000000060 <tt0_000>:
60: 30 80 00 00 b,a 60 <tt0_000>
60: R_SPARC_WDISP22 por
64: 30 68 00 07 b,a %xcc, 80 <tt0_001>
68: 01 00 00 00 nop
6c: 01 00 00 00 nop
70: 01 00 00 00 nop
74: 01 00 00 00 nop
78: 01 00 00 00 nop
7c: 01 00 00 00 nop
There are two branch instructions here:
60: 30 80 00 00 b,a 60 <tt0_000> is BA deprecated and
64: 30 68 00 07 b,a %xcc, 80 <tt0_001> is BPA.
So, my question is why does as produce second BPA instruction?
I use binutils 2.19.1 and gcc-4.3.3.
AlexM.