TriCore
®
TC1.6P & TC1.6E
32-bit Unified Processor Core
Instruction Set
V1.0 2013-07
User Manual (Volume 2) 3-112
IMASK
Insert Mask
Description
Create a mask containing the number of bits specified by width, starting at the bit number specified by either
D[d][4:0] (instruction formats RRRW and RCRW) or pos (instruction formats RRPW and RCPW), and put the mask
in data register E[c][63:32].
Left-shift the value in either D[b] (formats RRRW and RRPW) or const4 (formats RCRW and RCPW) by the
amount specified by either D[d][4:0] (formats RRRW and RCRW) or pos (formats RRPW and RCPW) and put the
result value in data register E[c][31:0].
The value const4 is zero-extended. This mask and value can be used by the Load-Modify-Store (LDMST)
instruction to write a specified bit field to a location in memory.
IMASKE[c], const4, pos, width (RCPW)
E[c][63:32] = ((2
width
-1) << pos);
E[c][31:0] = (zero_ext(const4) << pos);
If pos + width > 32 the result is undefined.
IMASKE[c], const4, D[d], width (RCRW)
E[c][63:32] = ((2
width
-1) << D[d][4:0]);
E[c][31:0] = (zero_ext(const4) << D[d][4:0]);
If (D[d][4:0] + width) > 32 the result is undefined.
IMASKE[c], D[b], pos, width (RRPW)
E[c][63:32] = ((2
width
-1) << pos);
E[c][31:0] = (D[b][31:0] << pos);
If (pos + width) > 32 the result is undefined.
IMASKE[c], D[b], D[d], width (RRRW)
E[c][63:32] = ((2
width
-1) << D[d][4:0]);
E[c][31:0] = (D[b] << D[d][4:0]);
If (D[d][4:0] + width) > 32 the result is undefined.
31
c
28 27
pos
23 22
01
H
21 20
width
16 15
const4
12 11
-
8 7
B7
H
0
31
c
28 27
d
24 23
01
H
21 20
width
16 15
const4
12 11
-
8 7
D7
H
0
31
c
28 27
pos
23 22
01
H
21 20
width
16 15
b
12 11
-
8 7
37
H
0
31
c
28 27
d
24 23
01
H
21 20
width
16 15
b
12 11
-
8 7
57
H
0