Lines Matching defs:reg
44 void x86_print_reg( struct x86_reg reg )
46 if (reg.mod != mod_REG)
49 switch( reg.file ) {
51 switch( reg.idx ) {
63 debug_printf( "MMX%u", reg.idx );
66 debug_printf( "XMM%u", reg.idx );
69 debug_printf( "fp%u", reg.idx );
73 if (reg.mod == mod_DISP8 ||
74 reg.mod == mod_DISP32)
75 debug_printf("+%d", reg.disp);
77 if (reg.mod != mod_REG)
229 struct x86_reg reg,
234 assert(reg.mod == mod_REG);
237 assert(reg.idx < 8);
241 val |= reg.idx << 3; /* reg field */
320 struct x86_reg reg;
322 reg.file = file;
323 reg.idx = idx;
324 reg.mod = mod_REG;
325 reg.disp = 0;
327 return reg;
330 struct x86_reg x86_make_disp( struct x86_reg reg,
333 assert(reg.file == file_REG32);
335 if (reg.mod == mod_REG)
336 reg.disp = disp;
338 reg.disp += disp;
340 if (reg.disp == 0 && reg.idx != reg_BP)
341 reg.mod = mod_INDIRECT;
342 else if (reg.disp <= 127 && reg.disp >= -128)
343 reg.mod = mod_DISP8;
345 reg.mod = mod_DISP32;
347 return reg;
350 struct x86_reg x86_deref( struct x86_reg reg )
352 return x86_make_disp(reg, 0);
355 struct x86_reg x86_get_base_reg( struct x86_reg reg )
357 return x86_make_reg( reg.file, reg.idx );
447 void x86_call( struct x86_function *p, struct x86_reg reg)
449 DUMP_R( reg );
451 emit_modrm_noreg(p, 2, reg);
569 struct x86_reg reg )
571 DUMP_R( reg );
572 if (reg.mod == mod_REG)
573 emit_1ub(p, 0x50 + reg.idx);
577 emit_modrm_noreg(p, 6, reg);
596 struct x86_reg reg )
598 DUMP_R( reg );
599 assert(reg.mod == mod_REG);
600 emit_1ub(p, 0x58 + reg.idx);
605 struct x86_reg reg )
607 DUMP_R( reg );
608 if(x86_target(p) == X86_32 && reg.mod == mod_REG)
610 emit_1ub(p, 0x40 + reg.idx);
614 emit_modrm_noreg(p, 0, reg);
618 struct x86_reg reg )
620 DUMP_R( reg );
621 if(x86_target(p) == X86_32 && reg.mod == mod_REG)
623 emit_1ub(p, 0x48 + reg.idx);
627 emit_modrm_noreg(p, 1, reg);
834 void x86_bswap( struct x86_function *p, struct x86_reg reg )
836 DUMP_R(reg);
837 assert(reg.file == file_REG32);
838 assert(reg.mod == mod_REG);
839 emit_2ub(p, 0x0f, 0xc8 + reg.idx);
842 void x86_shr_imm( struct x86_function *p, struct x86_reg reg, unsigned imm )
844 DUMP_RI(reg, imm);
848 emit_modrm_noreg(p, 5, reg);
853 emit_modrm_noreg(p, 5, reg);
858 void x86_sar_imm( struct x86_function *p, struct x86_reg reg, unsigned imm )
860 DUMP_RI(reg, imm);
864 emit_modrm_noreg(p, 7, reg);
869 emit_modrm_noreg(p, 7, reg);
874 void x86_shl_imm( struct x86_function *p, struct x86_reg reg, unsigned imm )
876 DUMP_RI(reg, imm);
880 emit_modrm_noreg(p, 4, reg);
885 emit_modrm_noreg(p, 4, reg);