py/asm: Remove need for dummy_data when doing initial assembler passes.

For all but the last pass the assembler only needs to count how much space
is needed for the machine code, it doesn't actually need to emit anything.
The dummy_data just uses unnecessary RAM and without it the code is not
any more complex (and code size does not increase for Thumb and Xtensa
archs).
This commit is contained in:
Damien George
2016-12-09 22:50:58 +11:00
parent e920bab976
commit 155fdc74d5
9 changed files with 84 additions and 62 deletions

View File

@@ -55,7 +55,10 @@ void asm_arm_end_pass(asm_arm_t *as) {
// Insert word into instruction flow
STATIC void emit(asm_arm_t *as, uint op) {
*(uint*)asm_arm_get_cur_to_write_bytes(as, 4) = op;
uint8_t *c = mp_asm_base_get_cur_to_write_bytes(&as->base, 4);
if (c != NULL) {
*(uint32_t*)c = op;
}
}
// Insert word into instruction flow, add "ALWAYS" condition code