File: vldconst.s

package info (click to toggle)
binutils-m68hc1x 1%3A2.35.1-3
  • links: PTS, VCS
  • area: main
  • in suites: bullseye
  • size: 335,580 kB
  • sloc: ansic: 1,187,755; asm: 674,290; cpp: 130,744; exp: 70,774; makefile: 56,048; sh: 22,128; yacc: 14,459; lisp: 13,803; perl: 2,112; ada: 1,681; lex: 1,649; pascal: 1,446; cs: 879; sed: 195; xml: 95; awk: 25
file content (146 lines) | stat: -rw-r--r-- 2,779 bytes parent folder | download | duplicates (25)
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
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
@       Test file for ARM/GAS -- vldr reg, =... expressions.
.fpu neon
.text
.align
foo:
	# test both low and high index of the
	# Advanced SIMD and Floating-point reg.
	.macro vlxr regtype const
	.irp regindex, 0, 14, 28, 31
		vldr \regtype\regindex, \const
	.endr
	.endm

	.macro vlxreq regtype const
	.irp regindex, 0, 14, 28, 31
		vldreq \regtype\regindex, \const
	.endr
	.endm

	.macro vlxrmi regtype const
	.irp regindex, 0, 14, 28, 31
		vldrmi \regtype\regindex, \const
	.endr
	.endm

	vlxr	s "=0"
	vlxr	s "=0xff000000"
	vlxr	s "=-1"
	vlxr	s "=0x0fff0000"
	.pool

	vlxr	s "=0"
	vlxr	s "=0x00ff0000"
	vlxr	s "=0xff00ffff"
	vlxr	s "=0x00fff000"
	.pool

	vlxreq	s "=0"
	vlxreq	s "=0x0000ff00"
	vlxreq	s "=0xffff00ff"
	vlxreq	s "=0x000fff00"
	.pool

	vlxrmi	s "=0"
	vlxrmi	s "=0x000000ff"
	vlxrmi	s "=0xffffff00"
	vlxrmi	s "=0x0000fff0"
	.pool

	vlxr	d "=0"
	vlxr	d "=0xca000000"
	vlxr	d "=-1"
	vlxr	d "=0x0fff0000"
	.pool

	vlxr	d "=0"
	vlxr	d "=0x00ff0000"
	vlxr	d "=0xff0000ff"
	vlxr	d "=0x00fff000"
	.pool

	vlxreq	d "=0"
	vlxreq	d "=0x0000ff00"
	vlxreq	d "=0xffff00ff"
	vlxreq	d "=0x000fff00"
	.pool

	vlxrmi	d "=0"
	vlxrmi	d "=0x000000ff"
	vlxrmi	d "=0xffffff00"
	vlxrmi	d "=0x0000ffff"
	.pool

	vlxr	d "=0"
	vlxr	d "=0xff00000000000000"
	vlxr	d "=-1"
	vlxr	d "=0x0fff000000000000"
	.pool

	vlxr	d "=0"
	vlxr	d "=0x00ff00000000000"
	vlxr	d "=0xff00ffff0000000"
	vlxr	d "=0x00fff0000000000"
	.pool

	vlxreq	d "=0"
	vlxreq	d "=0x0000ff0000000000"
	vlxreq	d "=0xffff00ff00000000"
	vlxreq	d "=0x000fff0000000000"
	.pool

	vlxrmi	d "=0"
	vlxrmi	d "=0x000000ff00000000"
	vlxrmi	d "=0xffffff0000000000"
	vlxrmi	d "=0x0000fff000000000"
	.pool

	# pool should be aligned to 8-byte.
	.p2align 3
	vldr	d1, =0x0000fff000000000
	.pool

	# no error when code is align already.
	.p2align 3
	add	r0, r1, #0
	vldr	d1, =0x0000fff000000000
	.pool

	.p2align 3
	vldr	d1, =0x0000fff000000000
	vldr	s2, =0xff000000
	# padding A
	vldr	d3, =0x0000fff000000001
	# reuse padding slot A
	vldr	s4, =0xff000001
	# reuse d3
	vldr	d5, =0x0000fff000000001
	# new 8-byte entry
	vldr	d6, =0x0000fff000000002
	# new 8-byte entry
	vldr	d7, =0x0000fff000000003
	# new 4-byte entry
	vldr	s8, =0xff000002
	# padding B
	vldr	d9, =0x0000fff000000004
	# reuse padding slot B
	vldr	s10, =0xff000003
	# new 8-byte entry
	vldr	d11, =0x0000fff000000005
	# new 4 entry
	vldr	s12, =0xff000004
	# new 4 entry
	vldr	s13, =0xff000005
	# reuse value of s4 in pool
	vldr	s14, =0xff000001
	# reuse high part of d1 in pool
	vldr	s15, =0x0000fff0
	# 8-byte entry reuse two 4-byte entries.
	# this reuse should only happen for
	# little-endian
	# d16 reuse s12, s13
	vldr	d16, =0xff000005ff000004
	# d17 should not reuse high part of d11 and s12.
	# because the it's align 8-byte aligned.
	vldr	d17, =0xff0000040000fff0
	.pool