w6a: delete dead text state and redundant rex arm
This commit is contained in:
@@ -144,7 +144,7 @@ emit_rex(Asm *a, int regbit, int rmbit, int w)
|
|||||||
if (w) b |= 0x08;
|
if (w) b |= 0x08;
|
||||||
if (regbit) b |= 0x04;
|
if (regbit) b |= 0x04;
|
||||||
if (rmbit) b |= 0x01;
|
if (rmbit) b |= 0x01;
|
||||||
if (b != 0x40 || w) a_emit_byte(a, b);
|
if (b != 0x40) a_emit_byte(a, b);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* 8-bit register operands: SPL/BPL/SIL/DIL exist only WITH a REX
|
/* 8-bit register operands: SPL/BPL/SIL/DIL exist only WITH a REX
|
||||||
@@ -304,8 +304,6 @@ int
|
|||||||
a_encode(Asm *a)
|
a_encode(Asm *a)
|
||||||
{
|
{
|
||||||
fixups = NULL;
|
fixups = NULL;
|
||||||
const char *cur_text = NULL;
|
|
||||||
(void)cur_text;
|
|
||||||
for (Aprog *p = a->head; p; p = p->link) {
|
for (Aprog *p = a->head; p; p = p->link) {
|
||||||
if (p->label) {
|
if (p->label) {
|
||||||
Asym *s = a_intern(a, p->label);
|
Asym *s = a_intern(a, p->label);
|
||||||
@@ -322,7 +320,6 @@ a_encode(Asm *a)
|
|||||||
s->is_text = 1;
|
s->is_text = 1;
|
||||||
s->is_global = 1;
|
s->is_global = 1;
|
||||||
s->addr = a->textlen;
|
s->addr = a->textlen;
|
||||||
cur_text = p->to.sym;
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case A_DATA: {
|
case A_DATA: {
|
||||||
|
|||||||
@@ -101,8 +101,7 @@ fn emitrex(a: *asm_, regbit: i32, rmbit: i32, w: i32) void = {
|
|||||||
if (w != 0) { b = b | 8u8; };
|
if (w != 0) { b = b | 8u8; };
|
||||||
if (regbit != 0) { b = b | 4u8; };
|
if (regbit != 0) { b = b | 4u8; };
|
||||||
if (rmbit != 0) { b = b | 1u8; };
|
if (rmbit != 0) { b = b | 1u8; };
|
||||||
if (b != 64u8) { emitbyte(a, b); }
|
if (b != 64u8) { emitbyte(a, b); };
|
||||||
else { if (w != 0) { emitbyte(a, b); }; };
|
|
||||||
};
|
};
|
||||||
|
|
||||||
// 8-bit register operands: SPL/BPL/SIL/DIL exist only WITH a REX
|
// 8-bit register operands: SPL/BPL/SIL/DIL exist only WITH a REX
|
||||||
|
|||||||
Reference in New Issue
Block a user