@@ -4,74 +4,74 @@ package fast
4
4
// These should 1:1 match with the same definitions in the slow package.
5
5
6
6
func parseImmTypeI (instr U64 ) U64 {
7
- return signExtend64 (shr64 (toU64 (20 ), instr ), toU64 (11 ))
7
+ return signExtend64 (shr64 (byteToU64 (20 ), instr ), byteToU64 (11 ))
8
8
}
9
9
10
10
func parseImmTypeS (instr U64 ) U64 {
11
11
return signExtend64 (
12
12
or64 (
13
- shl64 (toU64 (5 ), shr64 (toU64 (25 ), instr )),
14
- and64 (shr64 (toU64 (7 ), instr ), toU64 (0x1F )),
13
+ shl64 (byteToU64 (5 ), shr64 (byteToU64 (25 ), instr )),
14
+ and64 (shr64 (byteToU64 (7 ), instr ), byteToU64 (0x1F )),
15
15
),
16
- toU64 (11 ))
16
+ byteToU64 (11 ))
17
17
}
18
18
19
19
func parseImmTypeB (instr U64 ) U64 {
20
20
return signExtend64 (
21
21
or64 (
22
22
or64 (
23
- shl64 (toU64 (1 ), and64 (shr64 (toU64 (8 ), instr ), toU64 (0xF ))),
24
- shl64 (toU64 (5 ), and64 (shr64 (toU64 (25 ), instr ), toU64 (0x3F ))),
23
+ shl64 (byteToU64 (1 ), and64 (shr64 (byteToU64 (8 ), instr ), byteToU64 (0xF ))),
24
+ shl64 (byteToU64 (5 ), and64 (shr64 (byteToU64 (25 ), instr ), byteToU64 (0x3F ))),
25
25
),
26
26
or64 (
27
- shl64 (toU64 (11 ), and64 (shr64 (toU64 (7 ), instr ), toU64 (1 ))),
28
- shl64 (toU64 (12 ), shr64 (toU64 (31 ), instr )),
27
+ shl64 (byteToU64 (11 ), and64 (shr64 (byteToU64 (7 ), instr ), byteToU64 (1 ))),
28
+ shl64 (byteToU64 (12 ), shr64 (byteToU64 (31 ), instr )),
29
29
),
30
30
),
31
- toU64 (12 ),
31
+ byteToU64 (12 ),
32
32
)
33
33
}
34
34
35
35
func parseImmTypeU (instr U64 ) U64 {
36
- return signExtend64 (shr64 (toU64 (12 ), instr ), toU64 (19 ))
36
+ return signExtend64 (shr64 (byteToU64 (12 ), instr ), byteToU64 (19 ))
37
37
}
38
38
39
39
func parseImmTypeJ (instr U64 ) U64 {
40
40
return signExtend64 (
41
41
or64 (
42
42
or64 (
43
- and64 (shr64 (toU64 (21 ), instr ), shortToU64 (0x3FF )), // 10 bits for index 0:9
44
- shl64 (toU64 (10 ), and64 (shr64 (toU64 (20 ), instr ), toU64 (1 ))), // 1 bit for index 10
43
+ and64 (shr64 (byteToU64 (21 ), instr ), shortToU64 (0x3FF )), // 10 bits for index 0:9
44
+ shl64 (byteToU64 (10 ), and64 (shr64 (byteToU64 (20 ), instr ), byteToU64 (1 ))), // 1 bit for index 10
45
45
),
46
46
or64 (
47
- shl64 (toU64 (11 ), and64 (shr64 (toU64 (12 ), instr ), toU64 (0xFF ))), // 8 bits for index 11:18
48
- shl64 (toU64 (19 ), shr64 (toU64 (31 ), instr )), // 1 bit for index 19
47
+ shl64 (byteToU64 (11 ), and64 (shr64 (byteToU64 (12 ), instr ), byteToU64 (0xFF ))), // 8 bits for index 11:18
48
+ shl64 (byteToU64 (19 ), shr64 (byteToU64 (31 ), instr )), // 1 bit for index 19
49
49
),
50
50
),
51
- toU64 (19 ),
51
+ byteToU64 (19 ),
52
52
)
53
53
}
54
54
55
55
func parseOpcode (instr U64 ) U64 {
56
- return and64 (instr , toU64 (0x7F ))
56
+ return and64 (instr , byteToU64 (0x7F ))
57
57
}
58
58
59
59
func parseRd (instr U64 ) U64 {
60
- return and64 (shr64 (toU64 (7 ), instr ), toU64 (0x1F ))
60
+ return and64 (shr64 (byteToU64 (7 ), instr ), byteToU64 (0x1F ))
61
61
}
62
62
63
63
func parseFunct3 (instr U64 ) U64 {
64
- return and64 (shr64 (toU64 (12 ), instr ), toU64 (0x7 ))
64
+ return and64 (shr64 (byteToU64 (12 ), instr ), byteToU64 (0x7 ))
65
65
}
66
66
67
67
func parseRs1 (instr U64 ) U64 {
68
- return and64 (shr64 (toU64 (15 ), instr ), toU64 (0x1F ))
68
+ return and64 (shr64 (byteToU64 (15 ), instr ), byteToU64 (0x1F ))
69
69
}
70
70
71
71
func parseRs2 (instr U64 ) U64 {
72
- return and64 (shr64 (toU64 (20 ), instr ), toU64 (0x1F ))
72
+ return and64 (shr64 (byteToU64 (20 ), instr ), byteToU64 (0x1F ))
73
73
}
74
74
75
75
func parseFunct7 (instr U64 ) U64 {
76
- return shr64 (toU64 (25 ), instr )
76
+ return shr64 (byteToU64 (25 ), instr )
77
77
}
0 commit comments