py: Fix loading of immediate pointer in Thumb assembler.

Addresses issue #1117.
This commit is contained in:
Damien George 2015-02-15 00:45:28 +00:00
parent 0868942e77
commit d1c3788375
3 changed files with 17 additions and 2 deletions

View File

@ -375,8 +375,8 @@ void asm_thumb_mov_reg_i32_aligned(asm_thumb_t *as, uint reg_dest, int i32) {
if ((as->code_offset & 3) == 0) {
asm_thumb_op16(as, ASM_THUMB_OP_NOP);
}
// jump over the i32 value (instruction prefect adds 4 to PC)
asm_thumb_op16(as, OP_B_N(0));
// jump over the i32 value (instruction prefetch adds 2 to PC)
asm_thumb_op16(as, OP_B_N(2));
// store i32 on machine-word aligned boundary
asm_thumb_data(as, 4, i32);
// do the actual load of the i32 value

View File

@ -0,0 +1,13 @@
# check loading constants
@micropython.native
def f():
return 123456789012345678901234567890
print(f())
@micropython.native
def g():
return 1.2
print(g())

View File

@ -0,0 +1,2 @@
123456789012345678901234567890
1.2