X86 assembler cannot jump NEAR?

Hi,

Currently X86 assembler seems to always compile “jmp _label” as a SHORT jump with “EB” opcode:

$ echo “jmp _label”|llvm-mc -assemble -triple=i386 -show-encoding
.text
jmp _label # encoding: [0xeb,A]

My question is: can X86 assembler supports NEAR jump with opcode “E9”?
I try with “near” keyword, but it is not accepted:

$ echo “jmp near _label”|llvm-mc -assemble -triple=i386 -show-encoding
.text
:1:10: error: unexpected token in argument list
jmp near _label
^

Thanks,

Jun

I think this is really because the assembler doesn’t run layout and relaxation when not dumping to an object file. I disassembled an object file with this same test case and got e9 00 00 00 00.

I think this is really because the assembler doesn't run layout and
relaxation when not dumping to an object file. I disassembled an object
file with this same test case and got e9 00 00 00 00.

How can I tell llvm-mc to compile above assembly instruction to an object
file?

Thanks.