mirror of
https://github.com/netwide-assembler/nasm.git
synced 2025-10-10 00:25:06 -04:00
Don't convert the various RESx instructions to RESB
All it does is complicate things; instead leave the opcode where it is. Signed-off-by: H. Peter Anvin <hpa@zytor.com>
This commit is contained in:
@@ -1208,7 +1208,7 @@ static int64_t calcsize(int32_t segment, int64_t offset, int bits,
|
|||||||
nasm_warn(WARN_OTHER, "forward reference in RESx "
|
nasm_warn(WARN_OTHER, "forward reference in RESx "
|
||||||
"can have unpredictable results");
|
"can have unpredictable results");
|
||||||
else
|
else
|
||||||
length += ins->oprs[0].offset;
|
length += ins->oprs[0].offset * resb_bytes(ins->opcode);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 0341:
|
case 0341:
|
||||||
@@ -1875,7 +1875,7 @@ static void gencode(struct out_data *data, insn *ins)
|
|||||||
if (ins->oprs[0].segment != NO_SEG)
|
if (ins->oprs[0].segment != NO_SEG)
|
||||||
nasm_panic("non-constant BSS size in pass two");
|
nasm_panic("non-constant BSS size in pass two");
|
||||||
|
|
||||||
out_reserve(data, ins->oprs[0].offset);
|
out_reserve(data, ins->oprs[0].offset * resb_bytes(ins->opcode));
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 0341:
|
case 0341:
|
||||||
|
|||||||
10
asm/parser.c
10
asm/parser.c
@@ -1141,16 +1141,6 @@ is_expression:
|
|||||||
while (opnum < MAX_OPERANDS)
|
while (opnum < MAX_OPERANDS)
|
||||||
result->oprs[opnum++].type = 0;
|
result->oprs[opnum++].type = 0;
|
||||||
|
|
||||||
/*
|
|
||||||
* Transform RESW, RESD, RESQ, REST, RESO, RESY, RESZ into RESB.
|
|
||||||
*/
|
|
||||||
if (opcode_is_resb(result->opcode)) {
|
|
||||||
result->oprs[0].offset *= resb_bytes(result->opcode);
|
|
||||||
result->oprs[0].offset *= result->times;
|
|
||||||
result->times = 1;
|
|
||||||
result->opcode = I_RESB;
|
|
||||||
}
|
|
||||||
|
|
||||||
return result;
|
return result;
|
||||||
|
|
||||||
fail:
|
fail:
|
||||||
|
|||||||
@@ -59,13 +59,13 @@ DO ignore ignore ignore
|
|||||||
DY ignore ignore ignore
|
DY ignore ignore ignore
|
||||||
DZ ignore ignore ignore
|
DZ ignore ignore ignore
|
||||||
RESB imm [ resb] 8086
|
RESB imm [ resb] 8086
|
||||||
RESW ignore ignore ignore
|
RESW imm [ resb] 8086
|
||||||
RESD ignore ignore ignore
|
RESD imm [ resb] 8086
|
||||||
RESQ ignore ignore ignore
|
RESQ imm [ resb] 8086
|
||||||
REST ignore ignore ignore
|
REST imm [ resb] 8086
|
||||||
RESO ignore ignore ignore
|
RESO imm [ resb] 8086
|
||||||
RESY ignore ignore ignore
|
RESY imm [ resb] 8086
|
||||||
RESZ ignore ignore ignore
|
RESZ imm [ resb] 8086
|
||||||
INCBIN ignore ignore ignore
|
INCBIN ignore ignore ignore
|
||||||
|
|
||||||
;# Conventional instructions
|
;# Conventional instructions
|
||||||
|
|||||||
Reference in New Issue
Block a user