# Source file to test assembly of SB-1 MDMX subset instructions and extensions. # # SB-1 implements only the .ob MDMX instructions, and adds three additional # MDMX-ish instructions (pabsdiff, pabsdiffc, pavg). .set noreorder .set noat .globl text_label .text text_label: # The normal MDMX instructions: movf.l $v1, $v12, $fcc5 movn.l $v1, $v12, $18 movt.l $v1, $v12, $fcc5 movz.l $v1, $v12, $18 add.ob $v1, $v12, 18 add.ob $v1, $v12, $v18 add.ob $v1, $v12, $v18[6] adda.ob $v12, 18 adda.ob $v12, $v18 adda.ob $v12, $v18[6] addl.ob $v12, 18 addl.ob $v12, $v18 addl.ob $v12, $v18[6] alni.ob $v1, $v12, $v18, 6 alnv.ob $v1, $v12, $v18, $21 and.ob $v1, $v12, 18 and.ob $v1, $v12, $v18 and.ob $v1, $v12, $v18[6] c.eq.ob $v12, 18 c.eq.ob $v12, $v18 c.eq.ob $v12, $v18[6] c.le.ob $v12, 18 c.le.ob $v12, $v18 c.le.ob $v12, $v18[6] c.lt.ob $v12, 18 c.lt.ob $v12, $v18 c.lt.ob $v12, $v18[6] max.ob $v1, $v12, 18 max.ob $v1, $v12, $v18 max.ob $v1, $v12, $v18[6] min.ob $v1, $v12, 18 min.ob $v1, $v12, $v18 min.ob $v1, $v12, $v18[6] mul.ob $v1, $v12, 18 mul.ob $v1, $v12, $v18 mul.ob $v1, $v12, $v18[6] mula.ob $v12, 18 mula.ob $v12, $v18 mula.ob $v12, $v18[6] mull.ob $v12, 18 mull.ob $v12, $v18 mull.ob $v12, $v18[6] muls.ob $v12, 18 muls.ob $v12, $v18 muls.ob $v12, $v18[6] mulsl.ob $v12, 18 mulsl.ob $v12, $v18 mulsl.ob $v12, $v18[6] nor.ob $v1, $v12, 18 nor.ob $v1, $v12, $v18 nor.ob $v1, $v12, $v18[6] or.ob $v1, $v12, 18 or.ob $v1, $v12, $v18 or.ob $v1, $v12, $v18[6] pickf.ob $v1, $v12, 18 pickf.ob $v1, $v12, $v18 pickf.ob $v1, $v12, $v18[6] pickt.ob $v1, $v12, 18 pickt.ob $v1, $v12, $v18 pickt.ob $v1, $v12, $v18[6] rach.ob $v1 racl.ob $v1 racm.ob $v1 rnau.ob $v1, 18 rnau.ob $v1, $v18 rnau.ob $v1, $v18[6] rneu.ob $v1, 18 rneu.ob $v1, $v18 rneu.ob $v1, $v18[6] rzu.ob $v1, 18 rzu.ob $v1, $v18 rzu.ob $v1, $v18[6] shfl.mixh.ob $v1, $v12, $v18 shfl.mixl.ob $v1, $v12, $v18 shfl.pach.ob $v1, $v12, $v18 shfl.upsl.ob $v1, $v12, $v18 sll.ob $v1, $v12, 18 sll.ob $v1, $v12, $v18 sll.ob $v1, $v12, $v18[6] srl.ob $v1, $v12, 18 srl.ob $v1, $v12, $v18 srl.ob $v1, $v12, $v18[6] sub.ob $v1, $v12, 18 sub.ob $v1, $v12, $v18 sub.ob $v1, $v12, $v18[6] suba.ob $v12, 18 suba.ob $v12, $v18 suba.ob $v12, $v18[6] subl.ob $v12, 18 subl.ob $v12, $v18 subl.ob $v12, $v18[6] wach.ob $v12 wacl.ob $v12, $v18 xor.ob $v1, $v12, 18 xor.ob $v1, $v12, $v18 xor.ob $v1, $v12, $v18[6] # The extensions: pabsdiff.ob $v1, $v12, 18 pabsdiff.ob $v1, $v12, $v18 pabsdiff.ob $v1, $v12, $v18[6] pabsdiffc.ob $v12, 18 pabsdiffc.ob $v12, $v18 pabsdiffc.ob $v12, $v18[6] pavg.ob $v1, $v12, 18 pavg.ob $v1, $v12, $v18 pavg.ob $v1, $v12, $v18[6] # Force at least 8 (non-delay-slot) zero bytes, to make 'objdump' print ... .space 8