Lines Matching defs:lsb
1845 // Extracts #width adjacent bits from position #lsb in a register, and
1847 // ubfx dst, src, #lsb, #width
1848 void Assembler::ubfx(Register dst, Register src, int lsb, int width,
1852 DCHECK((lsb >= 0) && (lsb <= 31));
1853 DCHECK((width >= 1) && (width <= (32 - lsb)));
1855 lsb * B7 | B6 | B4 | src.code());
1859 // Extracts #width adjacent bits from position #lsb in a register, and
1862 // sbfx dst, src, #lsb, #width
1863 void Assembler::sbfx(Register dst, Register src, int lsb, int width,
1867 DCHECK((lsb >= 0) && (lsb <= 31));
1868 DCHECK((width >= 1) && (width <= (32 - lsb)));
1870 lsb * B7 | B6 | B4 | src.code());
1874 // Sets #width adjacent bits at position #lsb in the destination register
1876 // bfc dst, #lsb, #width
1877 void Assembler::bfc(Register dst, int lsb, int width, Condition cond) {
1880 DCHECK((lsb >= 0) && (lsb <= 31));
1881 DCHECK((width >= 1) && (width <= (32 - lsb)));
1882 int msb = lsb + width - 1;
1883 emit(cond | 0x1F * B22 | msb * B16 | dst.code() * B12 | lsb * B7 | B4 | 0xF);
1888 // into position #lsb of the destination register.
1889 // bfi dst, src, #lsb, #width
1890 void Assembler::bfi(Register dst, Register src, int lsb, int width,
1894 DCHECK((lsb >= 0) && (lsb <= 31));
1895 DCHECK((width >= 1) && (width <= (32 - lsb)));
1896 int msb = lsb + width - 1;
1897 emit(cond | 0x1F * B22 | msb * B16 | dst.code() * B12 | lsb * B7 | B4 |