This is the mail archive of the binutils@sourceware.org mailing list for the binutils project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

sparc64-elf-as output


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.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]