The Compiler
c-builtins

Builtin handling in c_factor(). Add before the general function call:

    if (is_letter(cur())) {
        const name: []const u8 = read_name();
        if (cur() == '(') {
            // Builtins
            if (streq(name, "load8")) {
                pos += 1; skip();
                c_expression();
                if (cur() == ')') { pos += 1; skip(); }
                emit_op("i32.wrap_i64");
                emit_op("i32.load8_u");
                emit_op("i64.extend_i32_u");
                return;
            }
            if (streq(name, "store8")) {
                pos += 1; skip();
                c_expression();
                if (cur() == ',') { pos += 1; skip(); }
                c_expression();
                if (cur() == ')') { pos += 1; skip(); }
                emit_str("  local.set $__tmp\n");
                emit_str("  i32.wrap_i64\n");
                emit_str("  local.get $__tmp\n");
                emit_str("  i32.wrap_i64\n");
                emit_op("i32.store8");
                emit_const(0);
                return;
            }
            if (streq(name, "load64")) {
                pos += 1; skip();
                c_expression();
                if (cur() == ')') { pos += 1; skip(); }
                emit_op("i32.wrap_i64");
                emit_op("i64.load");
                return;
            }
            if (streq(name, "store64")) {
                pos += 1; skip();
                c_expression();
                if (cur() == ',') { pos += 1; skip(); }
                c_expression();
                if (cur() == ')') { pos += 1; skip(); }
                emit_str("  local.set $__tmp\n");
                emit_str("  i32.wrap_i64\n");
                emit_str("  local.get $__tmp\n");
                emit_op("i64.store");
                emit_const(0);
                return;
            }
            // General function call
            c_call(name);
            return;
        }
        // Variable reference
        if (c_is_global(name)) {
            emit_str("  global.get $");
        } else {
            emit_str("  local.get $");
        }
        emit_str(name);
        emit_byte('\n');
        return;
    }