//-------------------------------------------------------------------
//      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

Reply via email to