bug-gnu-utils
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Gas for IA64 does not correctly detect dependencies in auto mode


From: John Smirnios
Subject: Gas for IA64 does not correctly detect dependencies in auto mode
Date: Fri, 28 Mar 2003 14:35:50 -0500

When using auto mode for IA64 assembly, gas does not correctly detect register dependencies.

 

Binutils version: 2.13

OS: HPUX Itanium and Linux Itanium.

Configuration name (on hpux): "a64-hp-hpux11.22"

Command line: gas -o foo.o foo.s

 

Here is a trivial example (also attached as a foo.s):

 

      .text

      .auto

      .align32

 

foo:

      ldfs  f8=[r32]

      stfd  [r33]=f8

 

 

Clearly there is a read-after-write dependency between these two instructions which will be put into the same bundle.

Using objdump, the generated code is as follows:

 

foo.o:     file format elf32-ia64-hpux-big

 

Disassembly of section .text:

 

00000000 <foo>:

   0:   19 40 00 40 10 18       [MMB]       ldfs f8=[r32]

   6:   00 40 84 30 33 00                   stfd [r33]=f8

   c:   00 00 00 20                         nop.b 0x0;;

  10:   00 04 00 00 00 00       [MII] (p32) break.m 0x0

  16:   02 00 00 00 00 01             (p08) break.i 0x0

  1c:   00 00 00 0c                         data8 0x1800000002

 

Gas did not generate a bundle template with a stop (;;) between the load and the store. Without the stop, the behaviour of this instruction bundle is undefined.

 

Using the Intel's ias for IA64, the following is generated:

 

Dump of file foo.obj

 

File Type: COFF OBJECT

 

foo:

  0000000000000000: 0004000000333084400018104000400A        ldfs                f8 = [r32] ;;

                                                            stfd                [r33] = f8

                                                            nop.i               0

 

 

 

Notice the stop (;;) between the load and store.

 

If the author of the IA64 gas support has a quick fix, I would appreciate a direct notification by email if possible (address@hidden).

 

Thanks,

 

-john.

 

Attachment: foo.s
Description: Text document


reply via email to

[Prev in Thread] Current Thread [Next in Thread]