summaryrefslogtreecommitdiff
path: root/py/emit.h
diff options
context:
space:
mode:
authorDamien <damien.p.george@gmail.com>2013-10-05 23:17:28 +0100
committerDamien <damien.p.george@gmail.com>2013-10-05 23:17:28 +0100
commit826005c60b3c22c468ec21e995844037aafd6f99 (patch)
tree291ba04ec4ab625316babc91bcdeebf5634150a3 /py/emit.h
parent5bfb759980c3891a9401d877fb225770146c79df (diff)
Add support for inline thumb assembly.
Diffstat (limited to 'py/emit.h')
-rw-r--r--py/emit.h13
1 files changed, 13 insertions, 0 deletions
diff --git a/py/emit.h b/py/emit.h
index 288141303..106a0a242 100644
--- a/py/emit.h
+++ b/py/emit.h
@@ -128,3 +128,16 @@ emit_t *emit_cpython_new(uint max_num_labels);
emit_t *emit_bc_new(uint max_num_labels);
emit_t *emit_x64_new(uint max_num_labels);
emit_t *emit_thumb_new(uint max_num_labels);
+
+typedef struct _emit_inline_asm_t emit_inline_asm_t;
+
+typedef struct _emit_inline_asm_method_table_t {
+ void (*start_pass)(emit_inline_asm_t *emit, pass_kind_t pass, scope_t *scope);
+ void (*end_pass)(emit_inline_asm_t *emit);
+ void (*label)(emit_inline_asm_t *emit, int label_num, qstr label_id);
+ void (*op)(emit_inline_asm_t *emit, qstr op, int n_args, py_parse_node_t *args);
+} emit_inline_asm_method_table_t;
+
+extern const emit_inline_asm_method_table_t emit_inline_thumb_method_table;
+
+emit_inline_asm_t *emit_inline_thumb_new(uint max_num_labels);