File: mips16e.s

package info (click to toggle)
binutils 2.34-2
  • links: PTS, VCS
  • area: main
  • in suites: sid
  • size: 328,380 kB
  • sloc: ansic: 1,180,155; asm: 665,310; cpp: 130,540; exp: 69,822; makefile: 57,183; sh: 22,559; yacc: 14,469; lisp: 13,785; perl: 2,112; ada: 1,681; lex: 1,650; pascal: 1,446; cs: 879; sed: 195; python: 154; xml: 95; awk: 25
file content (60 lines) | stat: -rw-r--r-- 928 bytes parent folder | download | duplicates (17)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
# Test the mips16e instruction set.

	.set	mips16
	.text
stuff:
	# explicit compact jumps
	jalrc	$2
	jalrc	$31,$2
	jrc	$31
	jrc	$2
	
	# these jumps should all be converted to compact versions
	jalr	$2
	jalr	$31,$2
	jal	$2
	jal	$31,$2
	jr	$31
	jr	$2
	j	$31
	j	$2
	
	# make sure unconditional jumps don't swap with compact jumps
	# and vice versa.
	jalr	$2
	.set	noreorder
	jal	foo		# mustn't swap with previous jalr
	addu	$4,$2,1
	.set	reorder
	jalr	$2
	jal	foo
	
	move	$4,$2
1:	jal	$2		# can't swap with move
		
	move	$4,$2
1:	jr	$2		# can't swap with move
	
	move	$4,$2
1:	jr	$31		# can't swap with move
	
	seb	$4
	seh	$4
	zeb	$4
	zeh	$4

	save	$31,8
	save	$31,128
	save	$31,$16,16
	save	$31,$16-$17,16
	save	$31,$17,120
	save	$31,$16,136
	save	$4,$31,$16-$17,16
	save	$4-$5,$31,$16,$18,$19,$20,16
	save	$4-$6,$31,$16-$20,16
	save	$4-$7,$31,$17,$18-$30,16
	save	$4-$5,$31,$16,$18,$19,$20,16,$6-$7
	
	restore	$31,8

	.p2align 4