[gforth] / gforth / arch / amd64 / testdisasm.out  

gforth: gforth/arch/amd64/testdisasm.out

File: [gforth] / gforth / arch / amd64 / testdisasm.out (download)
Revision: 1.8, Sat Aug 28 10:57:18 2010 UTC (2 years, 8 months ago) by dvdkhlng
Branch: MAIN
CVS Tags: HEAD
Changes since 1.7: +14 -1 lines
fixed 'enter' opcode use in test-case.
added tests for 64-bit immediate moves and other scaled-index addressing modes.

branch offset out of 1-byte range
ABI-Code testasm  
  	mov    %rax,%rdx
  	mov    %eax,%edx
  	movabs $0x1234567890abcdef,%rax
  	lea    (%rdx,%rcx,1),%rdx
  	lea    (%edx,%ecx,1),%rdx
  	lea    (%edx,%ecx,1),%edx
  	lea    (%rdx,%rcx,1),%edx
  	lea    (%rdx,%rcx,2),%rdx
  	lea    (%edx,%ecx,2),%rdx
  	lea    (%edx,%ecx,2),%edx
  	lea    (%rdx,%rcx,2),%edx
  	lea    (%rdx,%rcx,4),%rdx
  	lea    (%edx,%ecx,4),%rdx
  	lea    (%edx,%ecx,4),%edx
  	lea    (%rdx,%rcx,4),%edx
  	lea    (%rdx,%rcx,8),%rdx
  	lea    (%edx,%ecx,8),%rdx
  	lea    (%edx,%ecx,8),%edx
  	lea    (%rdx,%rcx,8),%edx
  	push   %rax
  	push   %r8
  	pop    %r10
  	popq   %fs
  	popq   %gs
  	pushq  %fs
  	pushq  %gs
  	popfq  
  	pushfq 
  	enterq $0x8,$0x0
  	leaveq 
  	pushq  $0x8
  	pushq  $0x10000000
  	callq  <addr...>
  	jrcxz  <addr...>
  	jne    <addr...>
  	jmp    <addr...>
  	loop   <addr...>
  	loopne <addr...>
  	retq   
  	lgdt   (%rdx)
  	lidt   (%rdx)
  	lldt   (%rdx)
  	ltr    %ax
  	mov    %rax,%cr1
  	mov    %db1,%rax
  	paddsw (%rax),%mm0
  	psllq  $0x3,%mm0
  	psrlq  $0x4,%mm0
  	femms  
  	movq   %mm0,(%rax)
  	movq   (%rax),%xmm1
  	movq   %mm1,(%rax)
  	movq   %rdx,%xmm1
  	movd   %mm0,(%rax)
  	movd   (%rax),%xmm1
  	movd   %mm1,(%rax)
  	movd   %edx,%mm0
  	maskmovq %mm1,%mm2
  	pfadd  (%rax),%mm1
  	pfsub  (%rax),%mm1
  	pfmul  (%rax),%mm1
  	prefetch (%rax)
  	prefetchw (%rax)
  	sfence 
  	movq   %rcx,%xmm2
  	movq   %xmm8,(%rax)
  	movq   (%rax),%xmm1
  	movq   %xmm1,(%rax)
  	movq   %rdx,%xmm1
  	movd   %xmm8,(%rax)
  	movd   (%rax),%xmm1
  	movd   %xmm1,(%rax)
  	movd   %edx,%xmm1
  	movq   (%rax),%xmm1
  	movq   %xmm1,(%rax)
  	movq   %xmm1,%xmm2
  	movd   %xmm8,(%rax)
  	movd   (%rax),%xmm1
  	movd   %xmm1,(%rax)
  	movd   %edx,%xmm1
  	movdqa %xmm8,(%rax)
  	movdqa (%rax),%xmm1
  	movdqu %xmm1,(%rax)
  	movdqu %xmm2,%xmm1
  	movups (%rax),%xmm1
  	movups %xmm1,(%rax)
  	movups %xmm1,%xmm8
  	movupd (%rax),%xmm1
  	maskmovdqu %xmm1,%xmm2
  	movlps (%rax),%xmm1
  	movlpd (%rax),%xmm1
  	movhps (%rax),%xmm1
  	movhpd (%rax),%xmm1
  	movaps (%rax),%xmm1
  	movapd (%rax),%xmm1
  	movss  (%rax),%xmm1
  	movsd  (%rax),%xmm1
  	addps  (%rax),%xmm1
  	addpd  (%rax),%xmm1
  	addss  (%rax),%xmm1
  	addsd  (%rax),%xmm1
  	addps  (%rax),%xmm1
  	addpd  (%rax),%xmm1
  	addss  (%rax),%xmm1
  	addsd  (%rax),%xmm1
  	subps  (%rax),%xmm1
  	subpd  (%rax),%xmm1
  	subss  (%rax),%xmm1
  	subsd  (%rax),%xmm1
  	maxps  (%rax),%xmm1
  	maxpd  (%rax),%xmm1
  	maxss  (%rax),%xmm1
  	maxsd  (%rax),%xmm1
  	minps  (%rax),%xmm1
  	minpd  (%rax),%xmm1
  	minss  (%rax),%xmm1
  	minsd  (%rax),%xmm1
  	mulps  (%rax),%xmm1
  	mulpd  (%rax),%xmm1
  	mulss  (%rax),%xmm1
  	mulsd  (%rax),%xmm1
  	divps  (%rax),%xmm1
  	divpd  (%rax),%xmm1
  	divss  (%rax),%xmm1
  	divsd  (%rax),%xmm1
  	addps  (%rax),%xmm8
  	andps  (%rax),%xmm1
  	andpd  (%rax),%xmm1
  	andnps (%rax),%xmm1
  	andnpd (%rax),%xmm1
  	orps   (%rax),%xmm1
  	orpd   (%rax),%xmm1
  	xorps  (%rax),%xmm1
  	xorpd  (%rax),%xmm1
  	ucomiss (%rax),%xmm1
  	ucomisd (%rax),%xmm1
  	comiss (%rax),%xmm1
  	comisd (%rax),%xmm1
  	cvtdq2ps (%rax),%xmm1
  	cvtps2dq (%rax),%xmm1
  	cvttps2dq (%rax),%xmm1
  	cvtdq2pd (%rax),%xmm1
  	cvtpd2dq (%rax),%xmm1
  	cvtps2dq (%rax),%xmm1
  	cvtps2pi (%rax),%mm1
  	cvtpd2pi (%rax),%mm1
  	cvtpi2ps (%rax),%xmm1
  	cvtpi2pd (%rax),%xmm1
  	cvtss2si %xmm2,%edx
  	cvtss2si (%rax),%edx
  	cvtss2si %xmm2,%rdx
  	cvtss2si (%rax),%rdx
  	cvtsd2si %xmm2,%edx
  	cvtsi2sd %edx,%xmm2
  	cvtsi2sdl (%rax),%xmm2
  	cvtsi2ss %edx,%xmm2
  	cvtsi2ssl (%rax),%xmm2
  	cvtsi2ss %rdx,%xmm2
  	cvtsi2ssq (%rax),%xmm2
  	divps  (%rax),%xmm1
  	divpd  (%rax),%xmm1
  	haddps (%rax),%xmm1
  	haddpd (%rax),%xmm1
  	hsubps (%rax),%xmm1
  	hsubpd (%rax),%xmm1
  	addsubps (%rax),%xmm1
  	addsubpd (%rax),%xmm1
  	cmpeqps (%rax),%xmm1
  	cmpltps (%rax),%xmm1
  	cmpleps (%rax),%xmm1
  	cmpunordps (%rax),%xmm1
  	cmpneqps (%rax),%xmm1
  	cmpnltps (%rax),%xmm1
  	cmpnleps (%rax),%xmm1
  	cmpordps (%rax),%xmm1
  	cmpeqpd (%rax),%xmm1
  	cmpltpd (%rax),%xmm1
  	cmplepd (%rax),%xmm1
  	cmpunordpd (%rax),%xmm1
  	cmpneqpd (%rax),%xmm1
  	cmpnltpd (%rax),%xmm1
  	cmpnlepd (%rax),%xmm1
  	cmpordpd (%rax),%xmm1
  	cmpeqss (%rax),%xmm1
  	cmpltss (%rax),%xmm1
  	cmpless (%rax),%xmm1
  	cmpunordss (%rax),%xmm1
  	cmpneqss (%rax),%xmm1
  	cmpnltss (%rax),%xmm1
  	cmpnless (%rax),%xmm1
  	cmpordss (%rax),%xmm1
  	cmpeqsd (%rax),%xmm1
  	cmpltsd (%rax),%xmm1
  	cmplesd (%rax),%xmm1
  	cmpunordsd (%rax),%xmm1
  	cmpneqsd (%rax),%xmm1
  	cmpnltsd (%rax),%xmm1
  	cmpnlesd (%rax),%xmm1
  	cmpordsd (%rax),%xmm1
  	paddsw (%rax),%xmm0
  	psllq  $0x3,%xmm0
  	psrlq  $0x4,%xmm0
  	pslldq $0x3,%xmm0
  	psrldq $0x4,%xmm0
end-code

CVS Admin

Powered by ViewCVS 1.0-dev
(Powered by ViewCVS)

ViewCVS and CVS Help