1 .text 2_start: 3 movl $foo@GOT, %eax 4 movl foo@GOT, %eax 5 movl foo@GOT(%eax), %eax 6 7 addl $foo@GOT, %eax 8 addl foo@GOT, %eax 9 addl foo@GOT(%eax), %eax 10 11 testl $foo@GOT, %eax 12 testl foo@GOT, %eax 13 testl foo@GOT(%eax), %eax 14 15 call *foo@GOT 16 call *foo@GOT(%eax) 17 jmp *foo@GOT 18 jmp *foo@GOT(%eax) 19 20 lsll foo@GOT, %eax 21 lsll foo@GOT(%eax), %eax 22 23 bndcn foo@GOT, %bnd0 24 bndcn foo@GOT(%eax), %bnd0 25 26 movlps %xmm0, foo@GOT 27 movlps %xmm0, foo@GOT(%eax) 28 29 .intel_syntax noprefix 30 31 mov eax, offset foo@got 32 mov eax, DWORD PTR [foo@GOT] 33 mov eax, DWORD PTR [eax + foo@GOT] 34 35 add eax, offset foo@got 36 add eax, DWORD PTR [foo@GOT] 37 add eax, DWORD PTR [eax + foo@GOT] 38 39 call DWORD PTR [eax + foo@GOT] 40 call DWORD PTR [foo@GOT] 41 jmp DWORD PTR [eax + foo@GOT] 42 jmp DWORD PTR [foo@GOT] 43