On Tue, Feb 21, 2012 at 06:11:54PM +0400, Kirill Yukhin wrote: > As far as I undersand, correct one seems like that: > .intel_syntax > xbegin $0 > nop > > .att_syntax > xbegin ($0) > nop > > Which disassembles into: > 0000000000000000 <.text>: > 0: c7 f8 00 00 00 00 xbeginq 0x6 > 6: 90 nop > 7: c7 f8 00 00 00 00 xbeginq 0xd > d: 90 nop
Doesn't seem to do what you expect (nor xbegin $0 in Intel syntax): $ /usr/src/binutils/obj/gas/as-new -o /tmp/a.o /tmp/a.s $ cat /tmp/a.s #.intel_syntax noprefix nop xbegin ($0) nop xbegin .+6 nop $ /usr/src/binutils/obj/binutils/objdump -dr /tmp/a.o /tmp/a.o: file format elf64-x86-64 Disassembly of section .text: 0000000000000000 <.text>: 0: 90 nop 1: c7 f8 00 00 00 00 xbeginq 0x7 3: R_X86_64_PC32 $0+0xfffffffffffffffc 7: 90 nop 8: c7 f8 00 00 00 00 xbeginq 0xe e: 90 nop Note the relocation in there, you don't want there any. Jakub