IA-64 libffi build problem
Jim Wilson
wilson@cygnus.com
Fri Apr 13 20:28:00 GMT 2001
A recent assembler reports a RAW DV for libffi/ia64/unix.S.
../../../gcc/libffi/src/ia64/unix.S: Assembler messages:
../../../gcc/libffi/src/ia64/unix.S:101: Warning: Use of 'adds' violates RAW dependency 'GR%, % in 1 - 127' (impliedf), specific resource number is 40
../../../gcc/libffi/src/ia64/unix.S:101: Warning: Only the first path encountering the conflict is reported
../../../gcc/libffi/src/ia64/unix.S:97: Warning: This is the location of the conflicting usage
The code in question is
ld8 out6=[loc2],16
ld8 out7=[loc3]
/* loc2 points at first stack parameter. Set sp to 16 bytes */
/* below that. */
add sp=-16,loc2
The first load increments loc2 by 16, and then the add decrements it by 16
without an intervening stop bit. However, rather than adding a stop bit to
eliminate the DV, it appears that this should be fixed by removing the
unnecessry increment and decrement, giving something like this:
ld8 out6=[loc2]
ld8 out7=[loc3]
/* Set sp to 16 bytes below the first stack parameter. This */
/* is the value currently in loc2. */
mov sp=loc2
This problem exists on both the trunk and the gcc3 branch.
Jim
More information about the Gcc-bugs
mailing list