error_loc = fornode->token->pos;
}
+ // @HACK This should be built elsewhere...
+ builtin_range_type_type = type_build_from_ast(context.ast_alloc, builtin_range_type);
+ if (builtin_range_type_type == NULL) YIELD(fornode->token->pos, "Waiting for 'range' structure to be built.");
+
fornode->loop_type = For_Loop_Invalid;
if (types_are_compatible(iter_type, &basic_types[Basic_Kind_I32])) {
if (fornode->by_pointer) {
OVM_OP(OVMI_CLZ, OVM_TYPE_I8 , __builtin_clz, u8)
OVM_OP(OVMI_CLZ, OVM_TYPE_I16, __builtin_clz, u16)
OVM_OP(OVMI_CLZ, OVM_TYPE_I32, __builtin_clz, u32)
- OVM_OP(OVMI_CLZ, OVM_TYPE_I64, __builtin_clz, u64)
+ OVM_OP(OVMI_CLZ, OVM_TYPE_I64, __builtin_clzll, u64)
OVM_OP(OVMI_CTZ, OVM_TYPE_I8 , __builtin_ctz, u8)
OVM_OP(OVMI_CTZ, OVM_TYPE_I16, __builtin_ctz, u16)
OVM_OP(OVMI_CTZ, OVM_TYPE_I32, __builtin_ctz, u32)
- OVM_OP(OVMI_CTZ, OVM_TYPE_I64, __builtin_ctz, u64)
+ OVM_OP(OVMI_CTZ, OVM_TYPE_I64, __builtin_ctzll, u64)
OVM_OP(OVMI_POPCNT, OVM_TYPE_I8 , __builtin_popcount, u8)
OVM_OP(OVMI_POPCNT, OVM_TYPE_I16, __builtin_popcount, u16)
OVM_OP(OVMI_POPCNT, OVM_TYPE_I32, __builtin_popcount, u32)
- OVM_OP(OVMI_POPCNT, OVM_TYPE_I64, __builtin_popcount, u64)
+ OVM_OP(OVMI_POPCNT, OVM_TYPE_I64, __builtin_popcountll, u64)
OVM_OP(OVMI_ABS, OVM_TYPE_F32, __ovm_abs, f32);
OVM_OP(OVMI_NEG, OVM_TYPE_F32, -, f32);