Skip to content
GitLab
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in
Toggle navigation
Menu
Open sidebar
TASTE
uPython-mirror
Commits
47dc5922
Commit
47dc5922
authored
Jan 07, 2016
by
Damien George
Browse files
py/inlinethumb: Allow assembler to use big ints as args to instructions.
parent
22b22650
Changes
1
Hide whitespace changes
Inline
Side-by-side
py/emitinlinethumb.c
View file @
47dc5922
...
...
@@ -298,12 +298,13 @@ bad_arg:
return
0
;
}
STATIC
int
get_arg_i
(
emit_inline_asm_t
*
emit
,
const
char
*
op
,
mp_parse_node_t
pn
,
int
fit_mask
)
{
if
(
!
MP_PARSE_NODE_IS_SMALL_INT
(
pn
))
{
STATIC
uint32_t
get_arg_i
(
emit_inline_asm_t
*
emit
,
const
char
*
op
,
mp_parse_node_t
pn
,
uint32_t
fit_mask
)
{
mp_obj_t
o
;
if
(
!
mp_parse_node_get_int_maybe
(
pn
,
&
o
))
{
emit_inline_thumb_error_exc
(
emit
,
mp_obj_new_exception_msg_varg
(
&
mp_type_SyntaxError
,
"'%s' expects an integer"
,
op
));
return
0
;
}
int
i
=
MP_PARSE_NODE_LEAF_SMALL_INT
(
pn
);
u
int
32_t
i
=
mp_obj_get_int_truncated
(
o
);
if
((
i
&
(
~
fit_mask
))
!=
0
)
{
emit_inline_thumb_error_exc
(
emit
,
mp_obj_new_exception_msg_varg
(
&
mp_type_SyntaxError
,
"'%s' integer 0x%x does not fit in mask 0x%x"
,
op
,
i
,
fit_mask
));
return
0
;
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment