Lines Matching refs:imm
72 uint64_t imm; in kinst_emulate() local
87 imm = 0; in kinst_emulate()
88 imm |= ((instr >> 21) & 0x03ff) << 1; in kinst_emulate()
89 imm |= ((instr >> 20) & 0x0001) << 11; in kinst_emulate()
90 imm |= ((instr >> 12) & 0x00ff) << 12; in kinst_emulate()
91 imm |= ((instr >> 31) & 0x0001) << 20; in kinst_emulate()
92 if (imm & 0x0000000000100000) in kinst_emulate()
93 imm |= 0xfffffffffff00000; in kinst_emulate()
96 frame->tf_sepc += imm; in kinst_emulate()
100 imm = (instr & IMM_MASK) >> IMM_SHIFT; in kinst_emulate()
101 if (imm & 0x0000000000000800) in kinst_emulate()
102 imm |= 0xfffffffffffff000; in kinst_emulate()
103 frame->tf_sepc = (rs1_lval + imm) & ~1; in kinst_emulate()
108 imm = 0; in kinst_emulate()
109 imm |= ((instr >> 8) & 0x000f) << 1; in kinst_emulate()
110 imm |= ((instr >> 25) & 0x003f) << 5; in kinst_emulate()
111 imm |= ((instr >> 7) & 0x0001) << 11; in kinst_emulate()
112 imm |= ((instr >> 31) & 0x0001) << 12; in kinst_emulate()
113 if (imm & 0x0000000000001000) in kinst_emulate()
114 imm |= 0xfffffffffffff000; in kinst_emulate()
119 frame->tf_sepc += imm; in kinst_emulate()
125 frame->tf_sepc += imm; in kinst_emulate()
131 frame->tf_sepc += imm; in kinst_emulate()
137 frame->tf_sepc += imm; in kinst_emulate()
143 frame->tf_sepc += imm; in kinst_emulate()
149 frame->tf_sepc += imm; in kinst_emulate()
156 imm = instr & 0xfffff000; in kinst_emulate()
158 (imm & 0x0000000080000000 ? in kinst_emulate()
159 imm | 0xffffffff80000000 : imm); in kinst_emulate()
180 imm = 0; in kinst_emulate()
181 imm |= ((off >> 1) & 0x07) << 1; in kinst_emulate()
182 imm |= ((off >> 9) & 0x01) << 4; in kinst_emulate()
183 imm |= ((off >> 0) & 0x01) << 5; in kinst_emulate()
184 imm |= ((off >> 5) & 0x01) << 6; in kinst_emulate()
185 imm |= ((off >> 4) & 0x01) << 7; in kinst_emulate()
186 imm |= ((off >> 7) & 0x03) << 8; in kinst_emulate()
187 imm |= ((off >> 6) & 0x01) << 10; in kinst_emulate()
188 imm |= ((off >> 10) & 0x01) << 11; in kinst_emulate()
189 if (imm & 0x0000000000000800) in kinst_emulate()
190 imm |= 0xfffffffffffff000; in kinst_emulate()
191 frame->tf_sepc += imm; in kinst_emulate()
195 imm = 0; in kinst_emulate()
196 imm |= ((instr >> 3) & 0x03) << 1; in kinst_emulate()
197 imm |= ((instr >> 10) & 0x03) << 3; in kinst_emulate()
198 imm |= ((instr >> 2) & 0x01) << 5; in kinst_emulate()
199 imm |= ((instr >> 5) & 0x03) << 6; in kinst_emulate()
200 imm |= ((instr >> 12) & 0x01) << 8; in kinst_emulate()
201 if (imm & 0x0000000000000100) in kinst_emulate()
202 imm |= 0xffffffffffffff00; in kinst_emulate()
204 frame->tf_sepc += imm; in kinst_emulate()
206 frame->tf_sepc += imm; in kinst_emulate()