Lines Matching defs:Rm
88 uint32_t ARMAssemblerInterface::reg_imm(int Rm, int type, uint32_t shift)
90 return ((shift&0x1F)<<7) | ((type&0x3)<<5) | (Rm&0xF);
93 uint32_t ARMAssemblerInterface::reg_rrx(int Rm)
95 return (ROR<<5) | (Rm&0xF);
98 uint32_t ARMAssemblerInterface::reg_reg(int Rm, int type, int Rs)
100 return ((Rs&0xF)<<8) | ((type&0x3)<<5) | (1<<4) | (Rm&0xF);
104 // LDR(B)/STR(B)/PLD (immediate and Rm can be negative, which indicate U=0)
123 uint32_t ARMAssemblerInterface::reg_scale_pre(int Rm, int type,
127 (((uint32_t(Rm)>>31)^1)<<23) | ((W&1)<<21) |
128 reg_imm(abs(Rm), type, shift);
131 uint32_t ARMAssemblerInterface::reg_scale_post(int Rm, int type, uint32_t shift)
133 return (1<<25) | (((uint32_t(Rm)>>31)^1)<<23) | reg_imm(abs(Rm), type, shift);
136 // LDRH/LDRSB/LDRSH/STRH (immediate and Rm can be negative, which indicate U=0)
161 uint32_t ARMAssemblerInterface::reg_pre(int Rm, int W)
163 return (1<<24) | (((uint32_t(Rm)>>31)^1)<<23) | ((W&1)<<21) | (abs(Rm)&0xF);
166 uint32_t ARMAssemblerInterface::reg_post(int Rm)
168 return (((uint32_t(Rm)>>31)^1)<<23) | (abs(Rm)&0xF);