summaryrefslogtreecommitdiffstatshomepage
path: root/py/runtime.c
diff options
context:
space:
mode:
authorRachel Dowdall <rjdowdall@gmail.com>2014-03-22 20:29:56 +0000
committerRachel Dowdall <rjdowdall@gmail.com>2014-03-22 20:29:56 +0000
commit2d15deebdcf7d6fb8f78907e0c6ca9cb9c2aa000 (patch)
tree4dba583967542dd95ebdf3f62865f9bb56db2350 /py/runtime.c
parentcde8631f15db9941986f8d04534e52462a76094b (diff)
downloadmicropython-2d15deebdcf7d6fb8f78907e0c6ca9cb9c2aa000.tar.gz
micropython-2d15deebdcf7d6fb8f78907e0c6ca9cb9c2aa000.zip
Fixed floor division on mp ints and small ints. Added a floordivide test case.
Diffstat (limited to 'py/runtime.c')
-rw-r--r--py/runtime.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/py/runtime.c b/py/runtime.c
index 95c3a44159..94f3190566 100644
--- a/py/runtime.c
+++ b/py/runtime.c
@@ -5,6 +5,7 @@
#include <stdio.h>
#include <string.h>
#include <assert.h>
+#include <math.h>
#include "nlr.h"
#include "misc.h"
@@ -661,7 +662,11 @@ mp_obj_t rt_binary_op(int op, mp_obj_t lhs, mp_obj_t rhs) {
break;
}
case RT_BINARY_OP_FLOOR_DIVIDE:
- case RT_BINARY_OP_INPLACE_FLOOR_DIVIDE: lhs_val /= rhs_val; break;
+ case RT_BINARY_OP_INPLACE_FLOOR_DIVIDE:
+ {
+ lhs_val = python_floor_divide(lhs_val, rhs_val);
+ break;
+ }
#if MICROPY_ENABLE_FLOAT
case RT_BINARY_OP_TRUE_DIVIDE:
case RT_BINARY_OP_INPLACE_TRUE_DIVIDE: return mp_obj_new_float((mp_float_t)lhs_val / (mp_float_t)rhs_val);