//------------------------------------------------------------------- // example1.s 'ljmp' versus 'ljmpq' inconsistency // // This code-fragment assembled without any error-messages. // $ as example1.s -o example1.o // // The objdump utility disassembled this 'ljmp' instruction // as 'ljmpq *0x0', but when the 'ljmpq' mnemonic-opcode is // actually used in a source-file, the assembler issues the // message: "Error: suffix or operands invalid for 'ljmp'" // $ as example2.s -o example2.o // // This apparent inconsistency was confusing to me, and may // perhaps not be what was intended by binutils developers. // // programmer: ALLAN CRUSE // written on: 02 JAN 2007
.code64 ljmp *destination destination: .long 0, 0x10 .end //------------------------------------------------------------------- //------------------------------------------------------------------- // example2.s .code64 ljmpq *destination destination: .long 0, 0x10 # <---- changing '.long' to '.quad' # did not resolve the inconsistency .end //------------------------------------------------------------------- NOTE: I am using binutils version 2.17 on a x86_64 kernel 2.6.17.6. (This same inconsistency also appeared with 'lcall' and 'lcallq'.) //------------------------------------------------------------------- _______________________________________________ bug-binutils mailing list bug-binutils@gnu.org http://lists.gnu.org/mailman/listinfo/bug-binutils