def emit_udiv(tmp_id, args):
c("uint64_t tmp{0} = {1};".format(tmp_id, args[1]))
c("uint64_t tmp{0} = {1};".format(tmp_id + 1, args[0]))
- c("uint64_t tmp{0} = tmp{1} ? tmp{2} / tmp{1} : 0;".format(tmp_id + 2, tmp_id + 1, tmp_id))
+ if args[0].isdigit():
+ assert int(args[0]) > 0
+ c("uint64_t tmp{0} = tmp{2} / tmp{1};".format(tmp_id + 2, tmp_id + 1, tmp_id))
+ else:
+ c("uint64_t tmp{0} = tmp{1} ? tmp{2} / tmp{1} : 0;".format(tmp_id + 2, tmp_id + 1, tmp_id))
return tmp_id + 3
def emit_umul(tmp_id, args):