GNU-as (2.19, 2.20) for hppa2.0w-hp-hpux11.31 creates a different bytecode for the "ADD" instruction compared to HP-as, when .LEVEL is set to "2.0". There is no difference when .LEVEL is set to "1.1".
Using this assembly file as input: $ cat > xx20.s <<EOF .LEVEL 2.0 .CODE func .PROC .CALLINFO FRAME=0, NO_CALLS .EXPORT func,ENTRY .ENTRY BV %r0(%rp) .EXIT ADD %r1,%r1,%r1 ; <== the important line .PROCEND .END EOF $ /opt/hp-gcc/bin/as xx20.s -o xx20.gnu.o $ /opt/hp-gcc/bin/objdump -d xx20.gnu.o > xx20.gnu.asm $ /usr/ccs/bin/as xx20.s -o xx20.hp.o $ /opt/hp-gcc/bin/objdump -d xx20.hp.o > xx20.hp.asm $ diff xx20.hp.asm xx20.gnu.asm | grep add < 4: 08 21 06 01 add r1,r1,r1 > 4: 08 21 06 21 add r1,r1,r1 As there is no cmplt/carry/cond modifier (as described in [1] on page 7-2), I'm not sure if {The boolean variable "overflow" in the operation section is set} actually applies. [1] http://h21007.www2.hp.com/portal/download/files/unprot/parisc20/PA_7_inst_descriptions.pdf -- Summary: gas creates 64bit add-instruction in 32bit mode for hppa2.0 Product: binutils Version: 2.20 Status: NEW Severity: normal Priority: P2 Component: gas AssignedTo: unassigned at sources dot redhat dot com ReportedBy: haubi at gentoo dot org CC: bug-binutils at gnu dot org GCC build triplet: hppa2.0*-hp-hpux* GCC host triplet: hppa2.0*-hp-hpux* GCC target triplet: hppa2.0*-hp-hpux* http://sourceware.org/bugzilla/show_bug.cgi?id=11395 ------- You are receiving this mail because: ------- You are on the CC list for the bug, or are watching someone who is. _______________________________________________ bug-binutils mailing list bug-binutils@gnu.org http://lists.gnu.org/mailman/listinfo/bug-binutils