diff --git a/py/asmthumb.c b/py/asmthumb.c
index 16337f4d5e23ba1002b3afac7c3e295018f079e4..8341c958e9368971d3022fa738a5afd898d50ebf 100644
--- a/py/asmthumb.c
+++ b/py/asmthumb.c
@@ -88,6 +88,7 @@ void asm_thumb_start_pass(asm_thumb_t *as, uint pass) {
 }
 
 void asm_thumb_end_pass(asm_thumb_t *as) {
+    (void)as;
     // could check labels are resolved...
 }
 
@@ -402,7 +403,7 @@ void asm_thumb_b_label(asm_thumb_t *as, uint label) {
     mp_uint_t dest = get_label_dest(as, label);
     mp_int_t rel = dest - as->code_offset;
     rel -= 4; // account for instruction prefetch, PC is 4 bytes ahead of this instruction
-    if (dest != -1 && rel <= -4) {
+    if (dest != (mp_uint_t)-1 && rel <= -4) {
         // is a backwards jump, so we know the size of the jump on the first pass
         // calculate rel assuming 12 bit relative jump
         if (SIGNED_FIT12(rel)) {
@@ -421,7 +422,7 @@ void asm_thumb_bcc_label(asm_thumb_t *as, int cond, uint label) {
     mp_uint_t dest = get_label_dest(as, label);
     mp_int_t rel = dest - as->code_offset;
     rel -= 4; // account for instruction prefetch, PC is 4 bytes ahead of this instruction
-    if (dest != -1 && rel <= -4) {
+    if (dest != (mp_uint_t)-1 && rel <= -4) {
         // is a backwards jump, so we know the size of the jump on the first pass
         // calculate rel assuming 9 bit relative jump
         if (SIGNED_FIT9(rel)) {