File: micromips-size-1.s

package info (click to toggle)
binutils 2.35.2-2
  • links: PTS, VCS
  • area: main
  • in suites: bullseye, sid
  • size: 345,288 kB
  • sloc: ansic: 1,188,423; asm: 674,501; cpp: 131,090; exp: 70,858; makefile: 57,650; sh: 22,573; yacc: 14,459; lisp: 13,803; perl: 2,112; ada: 1,681; lex: 1,649; pascal: 1,446; cs: 879; sed: 195; python: 154; xml: 95; awk: 25
file content (125 lines) | stat: -rw-r--r-- 2,044 bytes parent folder | download | duplicates (23)
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
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
# Source file used to test microMIPS instruction size overrides (#1).

	.text
foo:
# Smoke-test a trivial case.
	nop
	nop16
	nop32

# Test ALU operations.
	addu	$2, $4
	addu16	$2, $4
	addu32	$2, $4
	addu	$12, $14
	addu32	$12, $14
	add.ps	$f2, $f4
	add32.ps $f2, $f4
	addiusp	256
	addiusp16 256

# Test jumps and branches.
	jalr	$4
	jalr16	$4
	jalr32	$4
	jalr	$24
	jalr16	$24
	jalr32	$24
	jalr	$31,$5
	jalr16	$31,$5
	jalr32	$31,$5
	jalr	$31,$25
	jalr16	$31,$25
	jalr32	$31,$25
	jalr	$30,$26
	jalr32	$30,$26
	nop
	b	bar
	nop
	b16	bar
	nop
	b32	bar
	nop
	beqz	$7, bar
	nop
	beqz16	$7, bar
	nop
	beqz32	$7, bar
	nop
	beqz	$27, bar
	nop
	beqz32	$27, bar

# Test branch delay slots.
	.set	noreorder
	bltzal	$2, bar
	 addu	$16, $17
	bltzal	$2, bar
	 addu16	$16, $17
	bltzal	$2, bar
	 addu32	$16, $17
	bltzals	$2, bar
	 addu	$16, $17
	bltzals	$2, bar
	 addu16	$16, $17
	bltzals	$2, bar
	 addu32	$16, $17
	bltzal	$2, bar
	 add.ps	$f2, $f4
	bltzal	$2, bar
	 add32.ps $f2, $f4
	bltzals	$2, bar
	 add.ps	$f2, $f4
	bltzals	$2, bar
	 add32.ps $f2, $f4
	bltzal	$2, bar
	 addiusp 256
	bltzal	$2, bar
	 addiusp16 256
	bltzals	$2, bar
	 addiusp 256
	bltzals	$2, bar
	 addiusp16 256
	.set	reorder

# Test macro delay slots.
	.set	noreorder
	bltzall	$2, bar
	 addu	$16, $17
	bltzall	$2, bar
	 addu16	$16, $17
	bltzall	$2, bar
	 addu32	$16, $17
	bltzall	$2, bar
	 add.ps	$f2, $f4
	bltzall	$2, bar
	 add32.ps $f2, $f4
	bltzall	$2, bar
	 addiusp 256
	bltzall	$2, bar
	 addiusp16 256
	.set	reorder

# Test shift instructions to complement 64-bit tests.
	sll	$2, $3, 5
	sll16	$2, $3, 5
	sll32	$2, $3, 5
	sll	$2, $3, 13
	sll32	$2, $3, 13
	sll	$10, $11, 5
	sll32	$10, $11, 5

# Test 64-bit instructions.
	dsll	$2, $3, 5
	dsll32	$2, $3, 5			# No way to force 32-bit DSLL.
	dsll3232 $2, $3, 5
	dsll	$2, $3, 13
	dsll32	$2, $3, 13			# No way to force 32-bit DSLL.
	dsll3232 $2, $3, 13
	dsll	$10, $11, 5
	dsll32	$10, $11, 5			# No way to force 32-bit DSLL.
	dsll3232 $10, $11, 5

# Force at least 8 (non-delay-slot) zero bytes, to make 'objdump' print ...
	.align	2
	.space	8