File: undefined_advsimd_armv8_3.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 (70 lines) | stat: -rw-r--r-- 1,789 bytes parent folder | download | duplicates (16)
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
# Generates tests to see if the following conditions make the instruction
# undefined:
#
# 1) size == 0
# 2) size == 3 && Q == 0
#
# These patterns can't be created by the assembler so instead manually encode
# them from a starting pattern.
.macro gen_insns_same opc
	.inst \opc
	.inst (\opc & 0xff3fffff) // size == 0
	.inst ((\opc | 0xc00000) & 0xbfffffff) // size == 3 && Q == 0
.endm

# Generates tests to see if the following conditions make the instruction
# undefined:
#
# 1) size == 0 || size == 3
# 2) size == 1 && H == 1 && Q == 0
# 3) size == 2 && (L == 1 || Q == 0)
#
# These patterns can't be created by the assembler so instead manually encode
# them from a starting pattern.
.macro gen_insns_elem opc
	.inst \opc
	.inst (\opc & 0xff3fffff) // size == 0
	.inst (\opc | 0xc00000) // size == 3
	.inst ((\opc | 0x400800) & 0xbf7fffff) // size == 1 && H == 1 && Q == 0
	.inst ((\opc | 0xa00000) & 0xffbfffff) // size == 2 && L == 1
	.inst ((\opc | 0x800000) & 0xbfbfffff) // size == 2 && Q == 0
.endm

# fcmla v1.2d, v2.2d, v3.2d, #0
gen_insns_same 0x6ec3c441

# fcmla v1.2s, v2.2s, v3.2s, #0
gen_insns_same 0x2e83c441

# fcmla v1.4s, v2.4s, v3.4s, #0
gen_insns_same 0x6e83c441

# fcmla v1.4h, v2.4h, v3.4h, #0
gen_insns_same 0x2e43c441

# fcmla v1.8h, v2.8h, v3.8h, #0
gen_insns_same 0x6e43c441

# fcmla v1.4s, v2.4s, v3.s[0], #0
gen_insns_elem 0x6f831041

# fcmla v1.4h, v2.4h, v3.h[0], #0
gen_insns_elem 0x2f431041

# fcmla v1.8h, v2.8h, v3.h[0], #0
gen_insns_elem 0x6f431041

# fcadd v1.2d, v2.2d, v3.2d, #90
gen_insns_same 0x6ec3e441

# fcadd v1.2s, v2.2s, v3.2s, #90
gen_insns_same 0x2e83e441

# fcadd v1.4s, v2.4s, v3.4s, #90
gen_insns_same 0x6e83e441

# fcadd v1.4h, v2.4h, v3.4h, #90
gen_insns_same 0x2e43e441

# fcadd v1.8h, v2.8h, v3.8h, #90
gen_insns_same 0x6e43e441