Lines Matching defs:rm_reg
579 void Assembler::arithmetic_op(byte opcode, Register reg, Register rm_reg) {
582 if (rm_reg.low_bits() == 4) { // Forces SIB byte.
583 // Swap reg and rm_reg and change opcode operand order.
584 emit_rex_64(rm_reg, reg);
586 emit_modrm(rm_reg, reg);
588 emit_rex_64(reg, rm_reg);
590 emit_modrm(reg, rm_reg);
595 void Assembler::arithmetic_op_16(byte opcode, Register reg, Register rm_reg) {
598 if (rm_reg.low_bits() == 4) { // Forces SIB byte.
599 // Swap reg and rm_reg and change opcode operand order.
601 emit_optional_rex_32(rm_reg, reg);
603 emit_modrm(rm_reg, reg);
606 emit_optional_rex_32(reg, rm_reg);
608 emit_modrm(reg, rm_reg);
615 const Operand& rm_reg) {
618 emit_optional_rex_32(reg, rm_reg);
620 emit_operand(reg, rm_reg);
624 void Assembler::arithmetic_op_32(byte opcode, Register reg, Register rm_reg) {
627 if (rm_reg.low_bits() == 4) { // Forces SIB byte.
628 // Swap reg and rm_reg and change opcode operand order.
629 emit_optional_rex_32(rm_reg, reg);
631 emit_modrm(rm_reg, reg);
633 emit_optional_rex_32(reg, rm_reg);
635 emit_modrm(reg, rm_reg);
642 const Operand& rm_reg) {
644 emit_optional_rex_32(reg, rm_reg);
646 emit_operand(reg, rm_reg);