Home | History | Annotate | Download | only in sparc
      1 	.text
      2 	.global start
      3 
      4 !	Starting point
      5 start:
      6 
      7 !	test all ASRs
      8 
      9 	rd	%asr0, %l0
     10 	rd	%asr1, %l0
     11 	rd	%asr15, %l0
     12 	rd	%asr17, %l0
     13 	rd	%asr18, %l0
     14 	rd	%asr19, %l0	! should stop the processor
     15 	rd	%asr20, %l0
     16 	rd	%asr21, %l0
     17 	rd	%asr22, %l0
     18 
     19 	wr	%l0, 0, %asr0
     20 	wr	%l0, 0, %asr1
     21 	wr	%l0, 0, %asr15
     22 	wr	%l0, 0, %asr17
     23 	wr	%l0, 0, %asr18
     24 	wr	%l0, 0, %asr19
     25 	wr	%l0, 0, %asr20
     26 	wr	%l0, 0, %asr21
     27 	wr	%l0, 0, %asr22
     28 
     29 !	test UMUL with no overflow inside Y
     30 test_umul:
     31 	umul	%g1, %g2, %g3
     32 
     33 !	test UMUL with an overflow inside Y
     34 
     35 	umul	%g1, %g2, %g3	! %g3 must be equal to 0
     36 
     37 !	test SMUL with negative result
     38 test_smul:
     39 	smul	%g1, %g2, %g3
     40 
     41 !	test SMUL with positive result
     42 
     43 	smul	%g1, %g2, %g3
     44 
     45 !	test STBAR: there are two possible syntaxes
     46 test_stbar:
     47 	stbar			! is a valid V8 syntax, at least a synthetic
     48 				! instruction
     49 	rd	%asr15, %g0	! other solution
     50 
     51 !	test UNIMP
     52 	unimp	1
     53 
     54 !	test FLUSH
     55 	flush	%l1		! is the official V8 syntax
     56 
     57 !	test SCAN: find first 0
     58 test_scan:
     59 	scan	%l1, 0xffffffff, %l3
     60 
     61 !	test scan: find first 1
     62 
     63 	scan	%l1, 0, %l3
     64 
     65 !	test scan: find first bit != bit-0
     66 
     67 	scan	%l1, %l1, %l3
     68 
     69 !	test SHUFFLE
     70 test_shuffle:
     71 	shuffle	%l0, 0x1, %l1
     72 	shuffle	%l0, 0x2, %l1
     73 	shuffle	%l0, 0x4, %l1
     74 	shuffle	%l0, 0x8, %l1
     75 	shuffle	%l0, 0x10, %l1
     76 	shuffle	%l0, 0x18, %l1
     77 
     78 !	test UMAC
     79 test_umac:
     80 	umac	%l1, %l2, %l0
     81 	umac	%l1, 2, %l0
     82 	umac	2, %l1, %l0
     83 
     84 !	test UMACD
     85 test_umacd:
     86 	umacd	%l2, %l4, %l0
     87 	umacd	%l2, 3, %l0
     88 	umacd	3, %l2, %l0
     89 
     90 !	test SMAC
     91 test_smac:
     92 	smac	%l1, %l2, %l0
     93 	smac	%l1, -42, %l0
     94 	smac	-42, %l1, %l0
     95 
     96 !	test SMACD
     97 test_smacd:
     98 	smacd	%l2, %l4, %l0
     99 	smacd	%l2, 123, %l0
    100 	smacd	123, %l2, %l0
    101 
    102 !	test UMULD
    103 test_umuld:
    104 	umuld	%o2, %o4, %o0
    105 	umuld	%o2, 0x234, %o0
    106 	umuld	0x567, %o2, %o0
    107 
    108 !	test SMULD
    109 test_smuld:
    110 	smuld	%i2, %i4, %i0
    111 	smuld	%i2, -4096, %i0
    112 	smuld	4095, %i4, %i0
    113 
    114 !	Coprocessor instructions
    115 test_coprocessor:
    116 !	%ccsr	is register # 0
    117 !	%ccfr	is register # 1
    118 !	%ccpr	is register # 3
    119 !	%cccrcr is register # 2
    120 
    121 !	test CPUSH: just syntax
    122 
    123 	cpush	%l0, %l1
    124 	cpush	%l0, 1
    125 	cpusha	%l0, %l1
    126 	cpusha	%l0, 1
    127 
    128 !	test CPULL: just syntax
    129 
    130 	cpull	%l0
    131 
    132 !	test CPRDCXT: just syntax
    133 
    134 	crdcxt	%ccsr, %l0
    135 	crdcxt	%ccfr, %l0
    136 	crdcxt	%ccpr, %l0
    137 	crdcxt	%cccrcr, %l0
    138 
    139 !	test CPWRCXT: just syntax
    140 
    141 	cwrcxt	%l0, %ccsr
    142 	cwrcxt	%l0, %ccfr
    143 	cwrcxt	%l0, %ccpr
    144 	cwrcxt	%l0, %cccrcr
    145 
    146 !	test CBccc: just syntax
    147 
    148 	cbn	stop
    149 	nop
    150 	cbn,a	stop
    151 	nop
    152 	cbe	stop
    153 	nop
    154 	cbe,a	stop
    155 	nop
    156 	cbf	stop
    157 	nop
    158 	cbf,a	stop
    159 	nop
    160 	cbef	stop
    161 	nop
    162 	cbef,a	stop
    163 	nop
    164 	cbr	stop
    165 	nop
    166 	cbr,a	stop
    167 	nop
    168 	cber	stop
    169 	nop
    170 	cber,a	stop
    171 	nop
    172 	cbfr	stop
    173 	nop
    174 	cbfr,a	stop
    175 	nop
    176 	cbefr	stop
    177 	nop
    178 	cbefr,a	stop
    179 	nop
    180 	cba	stop
    181 	nop
    182 	cba,a	stop
    183 	nop
    184 	cbne	stop
    185 	nop
    186 	cbne,a	stop
    187 	nop
    188 	cbnf	stop
    189 	nop
    190 	cbnf,a	stop
    191 	nop
    192 	cbnef	stop
    193 	nop
    194 	cbnef,a	stop
    195 	nop
    196 	cbnr	stop
    197 	nop
    198 	cbnr,a	stop
    199 	nop
    200 	cbner	stop
    201 	nop
    202 	cbner,a	stop
    203 	nop
    204 	cbnfr	stop
    205 	nop
    206 	cbnfr,a	stop
    207 	nop
    208 	cbnefr	stop
    209 	nop
    210 	cbnefr,a	stop
    211 	nop
    212