128 lines · 2.1 KB · Assembly
RawDownload
# get variants.globl thread$xget8.globl _thread$xget8thread$xget8:_thread$xget8:	movb	(%rdi), %al	ret.globl thread$xget32.globl _thread$xget32thread$xget32:_thread$xget32:	movl	(%rdi), %eax	ret.globl thread$xget64.globl thread$xgetp.globl _thread$xget64.globl _thread$xgetpthread$xget64:thread$xgetp:_thread$xget64:_thread$xgetp:	movq	(%rdi), %rax	ret # set variants.globl thread$xset8.globl _thread$xset8thread$xset8:_thread$xset8:	lock xchgb	(%rdi), %sil	ret.globl thread$xset32.globl _thread$xset32thread$xset32:_thread$xset32:	lock xchgl	(%rdi), %esi	ret.globl thread$xset64.globl thread$xsetp.globl _thread$xset64.globl _thread$xsetpthread$xset64:thread$xsetp:_thread$xset64:_thread$xsetp:	lock xchgq	(%rdi), %rsi	ret # add variants.globl thread$xadd8.globl _thread$xadd8thread$xadd8:_thread$xadd8:	lock xaddb	%sil, (%rdi)	movb %sil,%al	ret.globl thread$xadd32.globl _thread$xadd32thread$xadd32:_thread$xadd32:	lock xaddl	%esi, (%rdi)	movl %esi,%eax	ret.globl thread$xadd64.globl thread$xaddp.globl _thread$xadd64.globl _thread$xaddpthread$xadd64:thread$xaddp:_thread$xadd64:_thread$xaddp:	lock xaddq	%rsi, (%rdi)	movq %rsi,%rax	ret # cas variants .globl thread$xcas8.globl _thread$xcas8thread$xcas8:_thread$xcas8:	movb	%sil, %al	lock cmpxchgb	%dl, (%rdi)	ret.globl thread$xcas32.globl _thread$xcas32thread$xcas32:_thread$xcas32:	movl	%esi, %eax	lock cmpxchgl	%edx, (%rdi)	ret.globl thread$xcas64.globl thread$xcasp.globl _thread$xcas64.globl _thread$xcaspthread$xcas64:thread$xcasp:_thread$xcas64:_thread$xcasp:	movq		%rsi, %rax	lock cmpxchgq	%rdx, (%rdi)	ret # xchg variants.globl thread$xchg8.globl _thread$xchg8thread$xchg8:_thread$xchg8:	movb		%sil, %al	lock xchgb	(%rdi), %al	ret.globl thread$xchg32.globl _thread$xchg32thread$xchg32:_thread$xchg32:	movl	%esi, %eax	lock xchgl	(%rdi), %eax	ret.globl thread$xchg64.globl thread$xchgp.globl _thread$xchg64.globl _thread$xchgpthread$xchg64:thread$xchgp:_thread$xchg64:_thread$xchgp:	movq	%rsi, %rax	lock xchgq	(%rdi), %rax	ret