summaryrefslogtreecommitdiffstatshomepage
path: root/py/emitinlinethumb.c
diff options
context:
space:
mode:
authorDamien George <damien.p.george@gmail.com>2014-04-21 13:33:15 +0100
committerDamien George <damien.p.george@gmail.com>2014-04-21 13:33:15 +0100
commite5f8a77db6b7328b9583cbd0fe6ac73535fca1a0 (patch)
treedc781d058bc820f6e9300bfe5ee56629c46f11f2 /py/emitinlinethumb.c
parent764af4b7c585831afa4996c2cf371403330faa35 (diff)
downloadmicropython-e5f8a77db6b7328b9583cbd0fe6ac73535fca1a0.tar.gz
micropython-e5f8a77db6b7328b9583cbd0fe6ac73535fca1a0.zip
py: Add 'align' and 'data' meta-instructions to inline assembler.
Diffstat (limited to 'py/emitinlinethumb.c')
-rw-r--r--py/emitinlinethumb.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/py/emitinlinethumb.c b/py/emitinlinethumb.c
index dabd5a8831..1ed5526631 100644
--- a/py/emitinlinethumb.c
+++ b/py/emitinlinethumb.c
@@ -104,6 +104,14 @@ STATIC void emit_inline_thumb_label(emit_inline_asm_t *emit, uint label_num, qst
asm_thumb_label_assign(emit->as, label_num);
}
+STATIC void emit_inline_thumb_align(emit_inline_asm_t *emit, uint align) {
+ asm_thumb_align(emit->as, align);
+}
+
+STATIC void emit_inline_thumb_data(emit_inline_asm_t *emit, uint bytesize, uint val) {
+ asm_thumb_data(emit->as, bytesize, val);
+}
+
typedef struct _reg_name_t { byte reg; byte name[3]; } reg_name_t;
STATIC const reg_name_t reg_name_table[] = {
{0, "r0\0"},
@@ -418,6 +426,8 @@ const emit_inline_asm_method_table_t emit_inline_thumb_method_table = {
emit_inline_thumb_end_pass,
emit_inline_thumb_count_params,
emit_inline_thumb_label,
+ emit_inline_thumb_align,
+ emit_inline_thumb_data,
emit_inline_thumb_op,
};