222d221
< imm_code = 'imm = IMM12; if (IMMSIGN > 0) imm |= ~((uint64_t)0x7FF);'
225c224
< {'code': code, 'imm_code': imm_code,
---
> {'code': code, 'imm_code': 'imm = sext<12>(IMM12);',
235,239c234,238
< imm |= BIMM12BIT11 << 11;
< imm |= BIMM12BITS4TO1 << 1;
< imm |= BIMM12BITS10TO5 << 5;
< if (IMMSIGN > 0)
< imm |= ~((uint64_t)0xFFF);
---
> imm = BIMM12BITS4TO1 << 1 |
> BIMM12BITS10TO5 << 5 |
> BIMM12BIT11 << 11 |
> IMMSIGN << 12;
> imm = sext<13>(imm);
252,253c251
< imm_code = 'imm = IMM12; if (IMMSIGN > 0) imm |= ~((uint64_t)0x7FF);'
< regs = ['_destRegIdx[0]','_srcRegIdx[0]']
---
> regs = ['_destRegIdx[0]', '_srcRegIdx[0]']
255c253
< {'code': code, 'imm_code': imm_code,
---
> {'code': code, 'imm_code': 'imm = sext<12>(IMM12);',
264d261
< imm_code = 'imm = (int32_t)(IMM20 << 12);'
267c264
< {'code': code, 'imm_code': imm_code,
---
> {'code': code, 'imm_code': 'imm = sext<20>(IMM20) << 12;',
277,281c274,278
< imm |= UJIMMBITS19TO12 << 12;
< imm |= UJIMMBIT11 << 11;
< imm |= UJIMMBITS10TO1 << 1;
< if (IMMSIGN > 0)
< imm |= ~((uint64_t)0xFFFFF);
---
> imm = UJIMMBITS10TO1 << 1 |
> UJIMMBIT11 << 11 |
> UJIMMBITS19TO12 << 12 |
> IMMSIGN << 20;
> imm = sext<21>(imm);