Lines Matching defs:reg
217 bool Operand::AddressUsesRegister(Register reg) const {
218 int code = reg.code();
634 void Assembler::arithmetic_op(byte opcode, Register reg, Operand op, int size) {
636 emit_rex(reg, op, size);
638 emit_operand(reg, op);
641 void Assembler::arithmetic_op(byte opcode, Register reg, Register rm_reg,
646 // Swap reg and rm_reg and change opcode operand order.
647 emit_rex(rm_reg, reg, size);
649 emit_modrm(rm_reg, reg);
651 emit_rex(reg, rm_reg, size);
653 emit_modrm(reg, rm_reg);
657 void Assembler::arithmetic_op_16(byte opcode, Register reg, Register rm_reg) {
661 // Swap reg and rm_reg and change opcode operand order.
663 emit_optional_rex_32(rm_reg, reg);
665 emit_modrm(rm_reg, reg);
668 emit_optional_rex_32(reg, rm_reg);
670 emit_modrm(reg, rm_reg);
674 void Assembler::arithmetic_op_16(byte opcode, Register reg, Operand rm_reg) {
677 emit_optional_rex_32(reg, rm_reg);
679 emit_operand(reg, rm_reg);
682 void Assembler::arithmetic_op_8(byte opcode, Register reg, Operand op) {
684 if (!reg.is_byte_register()) {
685 emit_rex_32(reg, op);
687 emit_optional_rex_32(reg, op);
690 emit_operand(reg, op);
693 void Assembler::arithmetic_op_8(byte opcode, Register reg, Register rm_reg) {
697 // Swap reg and rm_reg and change opcode operand order.
698 if (!rm_reg.is_byte_register() || !reg.is_byte_register()) {
700 emit_rex_32(rm_reg, reg);
703 emit_modrm(rm_reg, reg);
705 if (!reg.is_byte_register() || !rm_reg.is_byte_register()) {
707 emit_rex_32(reg, rm_reg);
710 emit_modrm(reg, rm_reg);
1951 void Assembler::negb(Register reg) {
1953 emit_optional_rex_8(reg);
1955 emit_modrm(0x3, reg);
1958 void Assembler::negw(Register reg) {
1961 emit_optional_rex_32(reg);
1963 emit_modrm(0x3, reg);
1966 void Assembler::negl(Register reg) {
1968 emit_optional_rex_32(reg);
1970 emit_modrm(0x3, reg);
1973 void Assembler::negq(Register reg) {
1975 emit_rex_64(reg);
1977 emit_modrm(0x3, reg);
2148 void Assembler::setcc(Condition cc, Register reg) {
2150 movb(reg, Immediate(cc == always ? 1 : 0));
2155 if (!reg.is_byte_register()) {
2157 emit_rex_32(reg);
2161 emit_modrm(0x0, reg);
2180 void Assembler::xchgb(Register reg, Operand op) {
2182 if (!reg.is_byte_register()) {
2184 emit_rex_32(reg, op);
2186 emit_optional_rex_32(reg, op);
2189 emit_operand(reg, op);
2192 void Assembler::xchgw(Register reg, Operand op) {
2195 emit_optional_rex_32(reg, op);
2197 emit_operand(reg, op);
2247 void Assembler::testb(Register reg, Immediate mask) {
2249 emit_test(reg, mask, sizeof(int8_t));
2257 void Assembler::testb(Operand op, Register reg) {
2258 emit_test(op, reg, sizeof(int8_t));
2265 void Assembler::testw(Register reg, Immediate mask) {
2266 emit_test(reg, mask, sizeof(int16_t));
2273 void Assembler::testw(Operand op, Register reg) {
2274 emit_test(op, reg, sizeof(int16_t));
2297 void Assembler::emit_test(Register reg, Immediate mask, int size) {
2312 if (!reg.is_byte_register()) emit_rex_32(reg);
2314 emit_rex(reg, size);
2316 if (reg == rax) {
2320 emit_modrm(0x0, reg);
2359 void Assembler::emit_test(Operand op, Register reg, int size) {
2368 if (!reg.is_byte_register()) {
2370 emit_rex_32(reg, op);
2372 emit_optional_rex_32(reg, op);
2375 emit_rex(reg, op, size);
2378 emit_operand(reg, op);
3874 void Assembler::bmi1q(byte op, Register reg, Register vreg, Register rm) {
3877 emit_vex_prefix(reg, vreg, rm, kLZ, kNoPrefix, k0F38, kW1);
3879 emit_modrm(reg, rm);
3882 void Assembler::bmi1q(byte op, Register reg, Register vreg, Operand rm) {
3885 emit_vex_prefix(reg, vreg, rm, kLZ, kNoPrefix, k0F38, kW1);
3887 emit_operand(reg, rm);
3890 void Assembler::bmi1l(byte op, Register reg, Register vreg, Register rm) {
3893 emit_vex_prefix(reg, vreg, rm, kLZ, kNoPrefix, k0F38, kW0);
3895 emit_modrm(reg, rm);
3898 void Assembler::bmi1l(byte op, Register reg, Register vreg, Operand rm) {
3901 emit_vex_prefix(reg, vreg, rm, kLZ, kNoPrefix, k0F38, kW0);
3903 emit_operand(reg, rm);
4026 void Assembler::bmi2q(SIMDPrefix pp, byte op, Register reg, Register vreg,
4030 emit_vex_prefix(reg, vreg, rm, kLZ, pp, k0F38, kW1);
4032 emit_modrm(reg, rm);
4035 void Assembler::bmi2q(SIMDPrefix pp, byte op, Register reg, Register vreg,
4039 emit_vex_prefix(reg, vreg, rm, kLZ, pp, k0F38, kW1);
4041 emit_operand(reg, rm);
4044 void Assembler::bmi2l(SIMDPrefix pp, byte op, Register reg, Register vreg,
4048 emit_vex_prefix(reg, vreg, rm, kLZ, pp, k0F38, kW0);
4050 emit_modrm(reg, rm);
4053 void Assembler::bmi2l(SIMDPrefix pp, byte op, Register reg, Register vreg,
4057 emit_vex_prefix(reg, vreg, rm, kLZ, pp, k0F38, kW0);
4059 emit_operand(reg, rm);
4408 void Assembler::emit_sse_operand(XMMRegister reg, Operand adr) {
4409 Register ireg = Register::from_code(reg.code());
4413 void Assembler::emit_sse_operand(Register reg, Operand adr) {
4414 emit_operand(reg, adr);