Mercurial > repos > blastem
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) { |