arm-asm: Allow implicit offset 0 in input of asm_single_data_transfer_opcode

This commit is contained in:
Danny Milosavljevic 2021-01-05 00:25:55 +01:00 committed by Ramsay Jones
parent 483625065f
commit 29f36a8953

View File

@ -992,15 +992,19 @@ static void asm_single_data_transfer_opcode(TCCState *s1, int token)
closed_bracket = 1;
// exclam = 1; // implicit in hardware; don't do it in software
}
if (tok != ',')
expect("','");
else
if (tok == ',') {
next(); // skip ','
if (tok == '-') {
op2_minus = 1;
next();
if (tok == '-') {
op2_minus = 1;
next();
}
parse_operand(s1, &ops[2]);
} else {
// end of input expression in brackets--assume 0 offset
ops[2].type = OP_IM8;
ops[2].e.v = 0;
opcode |= 1 << 24; // add offset before transfer
}
parse_operand(s1, &ops[2]);
if (!closed_bracket) {
if (tok != ']')
expect("']'");