Damien George
c8746e1e72
py: Move arch-specific assembler macros from emitnative to asmXXX.h.
2016-12-09 16:51:49 +11:00
Damien George
612599587b
py: Factor out common code from assemblers into asmbase.[ch].
...
All assemblers should "derive" from mp_asm_base_t.
2016-11-28 09:24:50 +11:00
Damien George
096d1e4512
py: Add lsl/lsr/asr opcode support to inline Thumb2 assembler.
2015-10-19 14:26:19 +01:00
Damien George
9988618e0e
py: Implement full func arg passing for native emitter.
...
This patch gets full function argument passing working with native
emitter. Includes named args, keyword args, default args, var args
and var keyword args. Fully Python compliant.
It reuses the bytecode mp_setup_code_state function to do all the hard
work. This function is slightly adjusted to accommodate native calls,
and the native emitter is forced a bit to emit similar prelude and
code-info as bytecode.
2015-04-07 22:43:28 +01:00
Damien George
9f142f0c84
py: For inline assembler, add bcc_n and bcc_w ops.
...
Addresses issue #1143 .
2015-03-02 14:29:52 +00:00
Damien George
534574348e
py: Make inline assembler raise exception when branch not in range.
...
Addresses issue #1132 .
2015-02-25 15:45:55 +00:00
Damien George
e41b21c01e
py: Make more asmthumb functions inline to reduce code size.
2015-02-24 16:32:52 +00:00
Damien George
eff10f66a6
py: Implement bl/bx instructions for inline Thumb assembler.
2015-02-16 18:17:07 +00:00
Damien George
42495392da
py: Implement "it" instruction for inline Thumb assembler.
2015-02-16 17:46:49 +00:00
Damien George
ebde3c694f
py: Add guarded includes for asm-based headers.
2015-01-01 18:07:43 +00:00
Damien George
0b610de017
py: Make macro names in assemblers consistent, and tidy up a bit.
2014-09-29 19:42:06 +01:00
Damien George
851f15f34c
py: In asmthumb, clean up unit/int types and ite ops.
2014-09-29 19:42:06 +01:00
Damien George
8105736982
py: Clean up x86-64 native assembler; allow use of extended regs.
...
Native x86-64 now has 3 locals in registers.
2014-09-07 01:06:19 +01:00
Damien George
40f3c02682
Rename machine_(u)int_t to mp_(u)int_t.
...
See discussion in issue #50 .
2014-07-03 13:25:24 +01:00
Damien George
36db6bcf54
py, compiler: Improve passes; add an extra pass for native emitter.
2014-05-07 17:24:22 +01:00
Damien George
04b9147e15
Add license header to (almost) all files.
...
Blanket wide to all .c and .h files. Some files originating from ST are
difficult to deal with (license wise) so it was left out of those.
Also merged modpyb.h, modos.h, modstm.h and modtime.h in stmhal/.
2014-05-03 23:27:38 +01:00
Damien George
e5f8a77db6
py: Add 'align' and 'data' meta-instructions to inline assembler.
2014-04-21 13:33:15 +01:00
Damien George
90edf9e13b
inlinethumb: Add wfi, cpsid and cpsie instructions.
2014-04-18 16:56:54 +01:00
Damien George
8721087661
py: Big improvements to inline assembler.
...
Improved the Thumb assembler back end. Added many more Thumb
instructions to the inline assembler. Improved parsing of assembler
instructions and arguments. Assembler functions can now be passed the
address of any object that supports the buffer protocol (to get the
address of the buffer). Added an example of how to sum numbers from
an array in assembler.
2014-04-13 00:30:32 +01:00
Damien George
a26dc50968
py: Improve inline assembler; improve compiler constant folding.
2014-04-12 17:54:52 +01:00
Damien George
6f355fd3b9
py: Make labels unsigned ints (converted from int).
...
Labels should never be negative, and this modified type signature
reflects that.
2014-04-10 14:11:31 +01:00
Damien George
47e1b85d9c
py: Improve inline assembler; add a few more opcodes.
2014-04-08 18:28:33 +01:00
Damien
9b9e996df6
Support for for-loop in native thumb.
2013-11-03 14:25:43 +00:00
Damien
1a6633a74d
Implement more thumb branch instructions.
2013-11-03 13:58:19 +00:00
Damien
03d4124320
Add b_n opcode to inline thumb asm.
2013-10-06 00:36:05 +01:00
Damien
826005c60b
Add support for inline thumb assembly.
2013-10-05 23:17:28 +01:00
Damien
5bfb759980
Incorporate emit_thumb into new emit framework.
2013-10-05 18:41:24 +01:00
Damien
429d71943d
Initial commit.
2013-10-04 19:53:11 +01:00