⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 op_helper_mem.h

📁 qemu虚拟机代码
💻 H
字号:
void glue(do_lsw, MEMSUFFIX) (int dst){    uint32_t tmp;    int sh;#if 0    if (loglevel > 0) {        fprintf(logfile, "%s: addr=0x%08x count=%d reg=%d\n",                __func__, T0, T1, dst);    }#endif    for (; T1 > 3; T1 -= 4, T0 += 4) {        ugpr(dst++) = glue(ldl, MEMSUFFIX)(T0);        if (dst == 32)            dst = 0;    }    if (T1 > 0) {        tmp = 0;        for (sh = 24; T1 > 0; T1--, T0++, sh -= 8) {            tmp |= glue(ldub, MEMSUFFIX)(T0) << sh;        }        ugpr(dst) = tmp;    }}void glue(do_stsw, MEMSUFFIX) (int src){    int sh;#if 0    if (loglevel > 0) {        fprintf(logfile, "%s: addr=0x%08x count=%d reg=%d\n",                __func__, T0, T1, src);    }#endif    for (; T1 > 3; T1 -= 4, T0 += 4) {        glue(stl, MEMSUFFIX)(T0, ugpr(src++));        if (src == 32)            src = 0;    }    if (T1 > 0) {        for (sh = 24; T1 > 0; T1--, T0++, sh -= 8)            glue(stb, MEMSUFFIX)(T0, (ugpr(src) >> sh) & 0xFF);    }}void glue(do_lsw_le, MEMSUFFIX) (int dst){    uint32_t tmp;    int sh;#if 0    if (loglevel > 0) {        fprintf(logfile, "%s: addr=0x%08x count=%d reg=%d\n",                __func__, T0, T1, dst);    }#endif    for (; T1 > 3; T1 -= 4, T0 += 4) {        tmp = glue(ldl, MEMSUFFIX)(T0);        ugpr(dst++) = ((tmp & 0xFF000000) >> 24) | ((tmp & 0x00FF0000) >> 8) |            ((tmp & 0x0000FF00) << 8) | ((tmp & 0x000000FF) << 24);        if (dst == 32)            dst = 0;    }    if (T1 > 0) {        tmp = 0;        for (sh = 0; T1 > 0; T1--, T0++, sh += 8) {            tmp |= glue(ldub, MEMSUFFIX)(T0) << sh;        }        ugpr(dst) = tmp;    }}void glue(do_stsw_le, MEMSUFFIX) (int src){    uint32_t tmp;    int sh;#if 0    if (loglevel > 0) {        fprintf(logfile, "%s: addr=0x%08x count=%d reg=%d\n",                __func__, T0, T1, src);    }#endif    for (; T1 > 3; T1 -= 4, T0 += 4) {        tmp = ((ugpr(src++) & 0xFF000000) >> 24);        tmp |= ((ugpr(src++) & 0x00FF0000) >> 8);        tmp |= ((ugpr(src++) & 0x0000FF00) << 8);        tmp |= ((ugpr(src++) & 0x000000FF) << 24);        glue(stl, MEMSUFFIX)(T0, tmp);        if (src == 32)            src = 0;    }    if (T1 > 0) {        for (sh = 0; T1 > 0; T1--, T0++, sh += 8)            glue(stb, MEMSUFFIX)(T0, (ugpr(src) >> sh) & 0xFF);    }}#undef MEMSUFFIX

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -