summary refs log tree commit diff stats
path: root/m68k-semi.c
diff options
context:
space:
mode:
Diffstat (limited to 'm68k-semi.c')
-rw-r--r--m68k-semi.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/m68k-semi.c b/m68k-semi.c
index 0371089b98..7fde10e8f3 100644
--- a/m68k-semi.c
+++ b/m68k-semi.c
@@ -370,7 +370,7 @@ void do_m68k_semihosting(CPUM68KState *env, int nr)
         TaskState *ts = env->opaque;
         /* Allocate the heap using sbrk.  */
         if (!ts->heap_limit) {
-            long ret;
+            abi_ulong ret;
             uint32_t size;
             uint32_t base;
 
@@ -379,8 +379,9 @@ void do_m68k_semihosting(CPUM68KState *env, int nr)
             /* Try a big heap, and reduce the size if that fails.  */
             for (;;) {
                 ret = do_brk(base + size);
-                if (ret != -1)
+                if (ret >= (base + size)) {
                     break;
+                }
                 size >>= 1;
             }
             ts->heap_limit = base + size;