215 lines
		
	
	
	
		
			3 KiB
		
	
	
	
		
			ArmAsm
		
	
	
	
	
	
			
		
		
	
	
			215 lines
		
	
	
	
		
			3 KiB
		
	
	
	
		
			ArmAsm
		
	
	
	
	
	
| .sect .text ; .sect .rom ; .sect .data ; .sect .bss ; .sect .text
 | |
| 
 | |
| ! test for Motorola MC68881 floating point processor instructions
 | |
| ! compare result of disassembled output with source.
 | |
| 
 | |
| .define _m_a_i_n
 | |
| _m_a_i_n:
 | |
| blablabla:
 | |
| ! dyadic instructions
 | |
| 	fadd.l	12(a6),fp0
 | |
| 	fadd	fp0,fp1
 | |
| 
 | |
| 	fcmp.l	12(a6),fp0
 | |
| 	fcmp	fp0,fp1
 | |
| 
 | |
| 	fdiv.l	12(a6),fp0
 | |
| 	fdiv	fp0,fp1
 | |
| 
 | |
| 	fmod.l	12(a6),fp0
 | |
| 	fmod	fp0,fp1
 | |
| 
 | |
| 	fmul.l	12(a6),fp0
 | |
| 	fmul	fp0,fp1
 | |
| 
 | |
| 	frem.l	12(a6),fp0
 | |
| 	frem	fp0,fp1
 | |
| 
 | |
| 	fscale.l	12(a6),fp0
 | |
| 	fscale	fp0,fp1
 | |
| 
 | |
| 	fsgldiv.l	12(a6),fp0
 | |
| 	fsgldiv	fp0,fp1
 | |
| 
 | |
| 	fsglmul.l	12(a6),fp0
 | |
| 	fsglmul	fp0,fp1
 | |
| 
 | |
| 	fsub.l	12(a6),fp0
 | |
| 	fsub	fp0,fp1
 | |
| 
 | |
| !monadic instructions
 | |
| 	fabs.p	12(a6),fp1
 | |
| 	fabs.x	fp1,fp2
 | |
| 	fabs	fp1
 | |
| 
 | |
| 	facos.p	12(a6),fp1
 | |
| 	facos.x	fp1,fp2
 | |
| 	facos	fp1
 | |
| 
 | |
| 	fasin.p	12(a6),fp1
 | |
| 	fasin.x	fp1,fp2
 | |
| 	fasin	fp1
 | |
| 
 | |
| 	fatan.p	12(a6),fp1
 | |
| 	fatan.x	fp1,fp2
 | |
| 	fatan	fp1
 | |
| 
 | |
| 	fatanh.p	12(a6),fp1
 | |
| 	fatanh.x	fp1,fp2
 | |
| 	fatanh	fp1
 | |
| 
 | |
| 	fcos.p	12(a6),fp1
 | |
| 	fcos.x	fp1,fp2
 | |
| 	fcos	fp1
 | |
| 
 | |
| 	fcosh.p	12(a6),fp1
 | |
| 	fcosh.x	fp1,fp2
 | |
| 	fcosh	fp1
 | |
| 
 | |
| 	fetox.p	12(a6),fp1
 | |
| 	fetox.x	fp1,fp2
 | |
| 	fetox	fp1
 | |
| 
 | |
| 	fetoxm1.p	12(a6),fp1
 | |
| 	fetoxm1.x	fp1,fp2
 | |
| 	fetoxm1	fp1
 | |
| 
 | |
| 	fgetexp.p	12(a6),fp1
 | |
| 	fgetexp.x	fp1,fp2
 | |
| 	fgetexp	fp1
 | |
| 
 | |
| 	fgetman.p	12(a6),fp1
 | |
| 	fgetman.x	fp1,fp2
 | |
| 	fgetman	fp1
 | |
| 
 | |
| 	fint.p	12(a6),fp1
 | |
| 	fint.x	fp1,fp2
 | |
| 	fint	fp1
 | |
| 
 | |
| 	fintrz.p	12(a6),fp1
 | |
| 	fintrz.x	fp1,fp2
 | |
| 	fintrz	fp1
 | |
| 
 | |
| 	flogn.p	12(a6),fp1
 | |
| 	flogn.x	fp1,fp2
 | |
| 	flogn	fp1
 | |
| 
 | |
| 	flognp1.p	12(a6),fp1
 | |
| 	flognp1.x	fp1,fp2
 | |
| 	flognp1	fp1
 | |
| 
 | |
| 	flog10.p	12(a6),fp1
 | |
| 	flog10.x	fp1,fp2
 | |
| 	flog10	fp1
 | |
| 
 | |
| 	flog2.p	12(a6),fp1
 | |
| 	flog2.x	fp1,fp2
 | |
| 	flog2	fp1
 | |
| 
 | |
| 	fneg.p	12(a6),fp1
 | |
| 	fneg.x	fp1,fp2
 | |
| 	fneg	fp1
 | |
| 
 | |
| 	fsin.p	12(a6),fp1
 | |
| 	fsin.x	fp1,fp2
 | |
| 	fsin	fp1
 | |
| 
 | |
| 	fsinh.p	12(a6),fp1
 | |
| 	fsinh.x	fp1,fp2
 | |
| 	fsinh	fp1
 | |
| 
 | |
| 	fsqrt.p	12(a6),fp1
 | |
| 	fsqrt.x	fp1,fp2
 | |
| 	fsqrt	fp1
 | |
| 
 | |
| 	ftan.p	12(a6),fp1
 | |
| 	ftan.x	fp1,fp2
 | |
| 	ftan	fp1
 | |
| 
 | |
| 	ftanh.p	12(a6),fp1
 | |
| 	ftanh.x	fp1,fp2
 | |
| 	ftanh	fp1
 | |
| 
 | |
| 	ftentox.p	12(a6),fp1
 | |
| 	ftentox.x	fp1,fp2
 | |
| 	ftentox	fp1
 | |
| 
 | |
| 	ftwotox.p	12(a6),fp1
 | |
| 	ftwotox.x	fp1,fp2
 | |
| 	ftwotox	fp1
 | |
| 
 | |
| !sincos
 | |
| 	fsincos.s	12(a6),fp0:fp1
 | |
| 	fsincos.x	fp2,fp0:fp1
 | |
| 
 | |
| !some moves
 | |
| 	fmove.l	12(a6),fp0
 | |
| 	fmove.l	fp1,12(a6)
 | |
| 	fmove.p	fp0,12(a6){d0}
 | |
| 	fmove.p	fp0,12(a6){#4}
 | |
| 	fmove.l	12(a6),fpcr
 | |
| 	!fmove.l	a0,fpcr			! error
 | |
| 	fmove.l	a0,fpiar
 | |
| 	fmovecr	#1,fp1
 | |
| 	!fmovem.x d1,(a0)+		! error
 | |
| 	fmovem.x d1,-(a0)
 | |
| 	fmovem.x fp0-fp3/fp5,-(a0)
 | |
| 	!fmovem.x -(a0),fp0-fp3/fp5	! error
 | |
| 	fmovem.x (a0)+,fp0-fp3/fp5
 | |
| 
 | |
| !some branches
 | |
| 	fbeq	blablabla
 | |
| 	fbne	blablabla
 | |
| 	fbgt	blablabla
 | |
| 	fbngt	blablabla
 | |
| 	fbge	blablabla
 | |
| 	fbnge	blablabla
 | |
| 	fblt	blablabla
 | |
| 	fbnlt	blablabla
 | |
| 	fble	blablabla
 | |
| 	fbnle	blablabla
 | |
| 	fbgl	blablabla
 | |
| 	fbngl	blablabla
 | |
| 	fbgle	blablabla
 | |
| 	fbngle	blablabla
 | |
| 	fbogt	blablabla
 | |
| 	fbule	blablabla
 | |
| 	fboge	blablabla
 | |
| 	fbult	blablabla
 | |
| 	fbolt	blablabla
 | |
| 	fbuge	blablabla
 | |
| 	fbole	blablabla
 | |
| 	fbugt	blablabla
 | |
| 	fbogl	blablabla
 | |
| 	fbueq	blablabla
 | |
| 	fbor	blablabla
 | |
| 	fbun	blablabla
 | |
| 	fbf	blablabla
 | |
| 	fbt	blablabla
 | |
| 	fbsf	blablabla
 | |
| 	fbst	blablabla
 | |
| 	fbseq	blablabla
 | |
| 	fbsne	blablabla
 | |
| 
 | |
| 	fdbgl	d4,blablabla
 | |
| 
 | |
| !nop
 | |
| 	fnop
 | |
| 
 | |
| !fscc
 | |
| 	fsult	d4
 | |
| 
 | |
| !ftst
 | |
| 	ftst.p	12(a6)
 | |
| 	ftst	fp0
 | |
| 
 | |
| !save/restore
 | |
| 	fsave	12(a6)
 | |
| 	! fsave	(a5)+		! error
 | |
| 	frestore	12(a6)
 | |
| 	! frestore	-(a5)	! error
 | |
| 
 | |
| !trap
 | |
| 	ftrapeq
 | |
| 	ftrapeq.l #4
 | |
| 	ftrapeq.w #4
 |