comparison gen_x86.c @ 349:ad493d38964e

Fix some minor copy pasta bugs that resulted in an unnecessary REX prefix being generated for some instructions
author Mike Pavone <pavone@retrodev.com>
date Tue, 21 May 2013 01:14:59 -0700
parents 467bfa17004a
children 9fb111b5641f
comparison
equal deleted inserted replaced
348:3923dbc2dcc4 349:ad493d38964e
484 } 484 }
485 if (size == SZ_W) { 485 if (size == SZ_W) {
486 *(out++) = PRE_SIZE; 486 *(out++) = PRE_SIZE;
487 } 487 }
488 488
489 if (size == SZ_Q || dst >= R8 || (size == SZ_B && dst >= RSP && dst <= RDI)) { 489 if (size == SZ_Q || dst >= R8) {
490 *out = PRE_REX; 490 *out = PRE_REX;
491 if (size == SZ_Q) { 491 if (size == SZ_Q) {
492 *out |= REX_QUAD; 492 *out |= REX_QUAD;
493 } 493 }
494 if (dst >= R8) { 494 if (dst >= R8) {
549 uint8_t * x86_shiftrot_irdisp8(uint8_t * out, uint8_t op_ex, uint8_t val, uint8_t dst, int8_t disp, uint8_t size) 549 uint8_t * x86_shiftrot_irdisp8(uint8_t * out, uint8_t op_ex, uint8_t val, uint8_t dst, int8_t disp, uint8_t size)
550 { 550 {
551 if (size == SZ_W) { 551 if (size == SZ_W) {
552 *(out++) = PRE_SIZE; 552 *(out++) = PRE_SIZE;
553 } 553 }
554 if (size == SZ_Q || dst >= R8 || (size == SZ_B && dst >= RSP && dst <= RDI)) { 554 if (size == SZ_Q || dst >= R8) {
555 *out = PRE_REX; 555 *out = PRE_REX;
556 if (size == SZ_Q) { 556 if (size == SZ_Q) {
557 *out |= REX_QUAD; 557 *out |= REX_QUAD;
558 } 558 }
559 if (dst >= R8) { 559 if (dst >= R8) {
603 uint8_t * x86_shiftrot_clrdisp8(uint8_t * out, uint8_t op_ex, uint8_t dst, int8_t disp, uint8_t size) 603 uint8_t * x86_shiftrot_clrdisp8(uint8_t * out, uint8_t op_ex, uint8_t dst, int8_t disp, uint8_t size)
604 { 604 {
605 if (size == SZ_W) { 605 if (size == SZ_W) {
606 *(out++) = PRE_SIZE; 606 *(out++) = PRE_SIZE;
607 } 607 }
608 if (size == SZ_Q || dst >= R8 || (size == SZ_B && dst >= RSP && dst <= RDI)) { 608 if (size == SZ_Q || dst >= R8) {
609 *out = PRE_REX; 609 *out = PRE_REX;
610 if (size == SZ_Q) { 610 if (size == SZ_Q) {
611 *out |= REX_QUAD; 611 *out |= REX_QUAD;
612 } 612 }
613 if (dst >= R8) { 613 if (dst >= R8) {
1138 uint8_t * mov_irdisp8(uint8_t * out, int32_t val, uint8_t dst, int8_t disp, uint8_t size) 1138 uint8_t * mov_irdisp8(uint8_t * out, int32_t val, uint8_t dst, int8_t disp, uint8_t size)
1139 { 1139 {
1140 if (size == SZ_W) { 1140 if (size == SZ_W) {
1141 *(out++) = PRE_SIZE; 1141 *(out++) = PRE_SIZE;
1142 } 1142 }
1143 if (size == SZ_Q || dst >= R8 || (size == SZ_B && dst >= RSP && dst <= RDI)) { 1143 if (size == SZ_Q || dst >= R8) {
1144 *out = PRE_REX; 1144 *out = PRE_REX;
1145 if (size == SZ_Q) { 1145 if (size == SZ_Q) {
1146 *out |= REX_QUAD; 1146 *out |= REX_QUAD;
1147 } 1147 }
1148 if (dst >= R8) { 1148 if (dst >= R8) {