op_mem.h

来自「xen虚拟机源代码安装包」· C头文件 代码 · 共 1,206 行 · 第 1/3 页

H
1,206
字号
    } else {        T1 = glue(ldu32, MEMSUFFIX)((uint64_t)T0);        env->reserve = (uint64_t)T0;    }    RETURN();}void OPPROTO glue(op_ldarx, MEMSUFFIX) (void){    if (unlikely(T0 & 0x03)) {        do_raise_exception(POWERPC_EXCP_ALIGN);    } else {        T1 = glue(ldu64, MEMSUFFIX)((uint32_t)T0);        env->reserve = (uint32_t)T0;    }    RETURN();}void OPPROTO glue(op_ldarx_64, MEMSUFFIX) (void){    if (unlikely(T0 & 0x03)) {        do_raise_exception(POWERPC_EXCP_ALIGN);    } else {        T1 = glue(ldu64, MEMSUFFIX)((uint64_t)T0);        env->reserve = (uint64_t)T0;    }    RETURN();}#endifvoid OPPROTO glue(op_lwarx_le, MEMSUFFIX) (void){    if (unlikely(T0 & 0x03)) {        do_raise_exception(POWERPC_EXCP_ALIGN);    } else {        T1 = glue(ldu32r, MEMSUFFIX)((uint32_t)T0);        env->reserve = (uint32_t)T0;    }    RETURN();}#if defined(TARGET_PPC64)void OPPROTO glue(op_lwarx_le_64, MEMSUFFIX) (void){    if (unlikely(T0 & 0x03)) {        do_raise_exception(POWERPC_EXCP_ALIGN);    } else {        T1 = glue(ldu32r, MEMSUFFIX)((uint64_t)T0);        env->reserve = (uint64_t)T0;    }    RETURN();}void OPPROTO glue(op_ldarx_le, MEMSUFFIX) (void){    if (unlikely(T0 & 0x03)) {        do_raise_exception(POWERPC_EXCP_ALIGN);    } else {        T1 = glue(ldu64r, MEMSUFFIX)((uint32_t)T0);        env->reserve = (uint32_t)T0;    }    RETURN();}void OPPROTO glue(op_ldarx_le_64, MEMSUFFIX) (void){    if (unlikely(T0 & 0x03)) {        do_raise_exception(POWERPC_EXCP_ALIGN);    } else {        T1 = glue(ldu64r, MEMSUFFIX)((uint64_t)T0);        env->reserve = (uint64_t)T0;    }    RETURN();}#endif/* Store with reservation */void OPPROTO glue(op_stwcx, MEMSUFFIX) (void){    if (unlikely(T0 & 0x03)) {        do_raise_exception(POWERPC_EXCP_ALIGN);    } else {        if (unlikely(env->reserve != (uint32_t)T0)) {            env->crf[0] = xer_so;        } else {            glue(st32, MEMSUFFIX)((uint32_t)T0, T1);            env->crf[0] = xer_so | 0x02;        }    }    env->reserve = (target_ulong)-1ULL;    RETURN();}#if defined(TARGET_PPC64)void OPPROTO glue(op_stwcx_64, MEMSUFFIX) (void){    if (unlikely(T0 & 0x03)) {        do_raise_exception(POWERPC_EXCP_ALIGN);    } else {        if (unlikely(env->reserve != (uint64_t)T0)) {            env->crf[0] = xer_so;        } else {            glue(st32, MEMSUFFIX)((uint64_t)T0, T1);            env->crf[0] = xer_so | 0x02;        }    }    env->reserve = (target_ulong)-1ULL;    RETURN();}void OPPROTO glue(op_stdcx, MEMSUFFIX) (void){    if (unlikely(T0 & 0x03)) {        do_raise_exception(POWERPC_EXCP_ALIGN);    } else {        if (unlikely(env->reserve != (uint32_t)T0)) {            env->crf[0] = xer_so;        } else {            glue(st64, MEMSUFFIX)((uint32_t)T0, T1);            env->crf[0] = xer_so | 0x02;        }    }    env->reserve = (target_ulong)-1ULL;    RETURN();}void OPPROTO glue(op_stdcx_64, MEMSUFFIX) (void){    if (unlikely(T0 & 0x03)) {        do_raise_exception(POWERPC_EXCP_ALIGN);    } else {        if (unlikely(env->reserve != (uint64_t)T0)) {            env->crf[0] = xer_so;        } else {            glue(st64, MEMSUFFIX)((uint64_t)T0, T1);            env->crf[0] = xer_so | 0x02;        }    }    env->reserve = (target_ulong)-1ULL;    RETURN();}#endifvoid OPPROTO glue(op_stwcx_le, MEMSUFFIX) (void){    if (unlikely(T0 & 0x03)) {        do_raise_exception(POWERPC_EXCP_ALIGN);    } else {        if (unlikely(env->reserve != (uint32_t)T0)) {            env->crf[0] = xer_so;        } else {            glue(st32r, MEMSUFFIX)((uint32_t)T0, T1);            env->crf[0] = xer_so | 0x02;        }    }    env->reserve = (target_ulong)-1ULL;    RETURN();}#if defined(TARGET_PPC64)void OPPROTO glue(op_stwcx_le_64, MEMSUFFIX) (void){    if (unlikely(T0 & 0x03)) {        do_raise_exception(POWERPC_EXCP_ALIGN);    } else {        if (unlikely(env->reserve != (uint64_t)T0)) {            env->crf[0] = xer_so;        } else {            glue(st32r, MEMSUFFIX)((uint64_t)T0, T1);            env->crf[0] = xer_so | 0x02;        }    }    env->reserve = (target_ulong)-1ULL;    RETURN();}void OPPROTO glue(op_stdcx_le, MEMSUFFIX) (void){    if (unlikely(T0 & 0x03)) {        do_raise_exception(POWERPC_EXCP_ALIGN);    } else {        if (unlikely(env->reserve != (uint32_t)T0)) {            env->crf[0] = xer_so;        } else {            glue(st64r, MEMSUFFIX)((uint32_t)T0, T1);            env->crf[0] = xer_so | 0x02;        }    }    env->reserve = (target_ulong)-1ULL;    RETURN();}void OPPROTO glue(op_stdcx_le_64, MEMSUFFIX) (void){    if (unlikely(T0 & 0x03)) {        do_raise_exception(POWERPC_EXCP_ALIGN);    } else {        if (unlikely(env->reserve != (uint64_t)T0)) {            env->crf[0] = xer_so;        } else {            glue(st64r, MEMSUFFIX)((uint64_t)T0, T1);            env->crf[0] = xer_so | 0x02;        }    }    env->reserve = (target_ulong)-1ULL;    RETURN();}#endifvoid OPPROTO glue(op_dcbz_l32, MEMSUFFIX) (void){    T0 &= ~((uint32_t)31);    glue(st32, MEMSUFFIX)((uint32_t)(T0 + 0x00), 0);    glue(st32, MEMSUFFIX)((uint32_t)(T0 + 0x04), 0);    glue(st32, MEMSUFFIX)((uint32_t)(T0 + 0x08), 0);    glue(st32, MEMSUFFIX)((uint32_t)(T0 + 0x0C), 0);    glue(st32, MEMSUFFIX)((uint32_t)(T0 + 0x10), 0);    glue(st32, MEMSUFFIX)((uint32_t)(T0 + 0x14), 0);    glue(st32, MEMSUFFIX)((uint32_t)(T0 + 0x18), 0);    glue(st32, MEMSUFFIX)((uint32_t)(T0 + 0x1C), 0);    RETURN();}void OPPROTO glue(op_dcbz_l64, MEMSUFFIX) (void){    T0 &= ~((uint32_t)63);    glue(st32, MEMSUFFIX)((uint32_t)(T0 + 0x00), 0);    glue(st32, MEMSUFFIX)((uint32_t)(T0 + 0x04), 0);    glue(st32, MEMSUFFIX)((uint32_t)(T0 + 0x08), 0);    glue(st32, MEMSUFFIX)((uint32_t)(T0 + 0x0C), 0);    glue(st32, MEMSUFFIX)((uint32_t)(T0 + 0x10), 0);    glue(st32, MEMSUFFIX)((uint32_t)(T0 + 0x14), 0);    glue(st32, MEMSUFFIX)((uint32_t)(T0 + 0x18), 0);    glue(st32, MEMSUFFIX)((uint32_t)(T0 + 0x1C), 0);    glue(st32, MEMSUFFIX)((uint32_t)(T0 + 0x20UL), 0);    glue(st32, MEMSUFFIX)((uint32_t)(T0 + 0x24UL), 0);    glue(st32, MEMSUFFIX)((uint32_t)(T0 + 0x28UL), 0);    glue(st32, MEMSUFFIX)((uint32_t)(T0 + 0x2CUL), 0);    glue(st32, MEMSUFFIX)((uint32_t)(T0 + 0x30UL), 0);    glue(st32, MEMSUFFIX)((uint32_t)(T0 + 0x34UL), 0);    glue(st32, MEMSUFFIX)((uint32_t)(T0 + 0x38UL), 0);    glue(st32, MEMSUFFIX)((uint32_t)(T0 + 0x3CUL), 0);    RETURN();}void OPPROTO glue(op_dcbz_l128, MEMSUFFIX) (void){    T0 &= ~((uint32_t)127);    glue(st32, MEMSUFFIX)((uint32_t)(T0 + 0x00), 0);    glue(st32, MEMSUFFIX)((uint32_t)(T0 + 0x04), 0);    glue(st32, MEMSUFFIX)((uint32_t)(T0 + 0x08), 0);    glue(st32, MEMSUFFIX)((uint32_t)(T0 + 0x0C), 0);    glue(st32, MEMSUFFIX)((uint32_t)(T0 + 0x10), 0);    glue(st32, MEMSUFFIX)((uint32_t)(T0 + 0x14), 0);    glue(st32, MEMSUFFIX)((uint32_t)(T0 + 0x18), 0);    glue(st32, MEMSUFFIX)((uint32_t)(T0 + 0x1C), 0);    glue(st32, MEMSUFFIX)((uint32_t)(T0 + 0x20UL), 0);    glue(st32, MEMSUFFIX)((uint32_t)(T0 + 0x24UL), 0);    glue(st32, MEMSUFFIX)((uint32_t)(T0 + 0x28UL), 0);    glue(st32, MEMSUFFIX)((uint32_t)(T0 + 0x2CUL), 0);    glue(st32, MEMSUFFIX)((uint32_t)(T0 + 0x30UL), 0);    glue(st32, MEMSUFFIX)((uint32_t)(T0 + 0x34UL), 0);    glue(st32, MEMSUFFIX)((uint32_t)(T0 + 0x38UL), 0);    glue(st32, MEMSUFFIX)((uint32_t)(T0 + 0x3CUL), 0);    glue(st32, MEMSUFFIX)((uint32_t)(T0 + 0x40UL), 0);    glue(st32, MEMSUFFIX)((uint32_t)(T0 + 0x44UL), 0);    glue(st32, MEMSUFFIX)((uint32_t)(T0 + 0x48UL), 0);    glue(st32, MEMSUFFIX)((uint32_t)(T0 + 0x4CUL), 0);    glue(st32, MEMSUFFIX)((uint32_t)(T0 + 0x50UL), 0);    glue(st32, MEMSUFFIX)((uint32_t)(T0 + 0x54UL), 0);    glue(st32, MEMSUFFIX)((uint32_t)(T0 + 0x58UL), 0);    glue(st32, MEMSUFFIX)((uint32_t)(T0 + 0x5CUL), 0);    glue(st32, MEMSUFFIX)((uint32_t)(T0 + 0x60UL), 0);    glue(st32, MEMSUFFIX)((uint32_t)(T0 + 0x64UL), 0);    glue(st32, MEMSUFFIX)((uint32_t)(T0 + 0x68UL), 0);    glue(st32, MEMSUFFIX)((uint32_t)(T0 + 0x6CUL), 0);    glue(st32, MEMSUFFIX)((uint32_t)(T0 + 0x70UL), 0);    glue(st32, MEMSUFFIX)((uint32_t)(T0 + 0x74UL), 0);    glue(st32, MEMSUFFIX)((uint32_t)(T0 + 0x78UL), 0);    glue(st32, MEMSUFFIX)((uint32_t)(T0 + 0x7CUL), 0);    RETURN();}void OPPROTO glue(op_dcbz, MEMSUFFIX) (void){    glue(do_dcbz, MEMSUFFIX)();    RETURN();}#if defined(TARGET_PPC64)void OPPROTO glue(op_dcbz_l32_64, MEMSUFFIX) (void){    T0 &= ~((uint64_t)31);    glue(st32, MEMSUFFIX)((uint64_t)(T0 + 0x00), 0);    glue(st32, MEMSUFFIX)((uint64_t)(T0 + 0x04), 0);    glue(st32, MEMSUFFIX)((uint64_t)(T0 + 0x08), 0);    glue(st32, MEMSUFFIX)((uint64_t)(T0 + 0x0C), 0);    glue(st32, MEMSUFFIX)((uint64_t)(T0 + 0x10), 0);    glue(st32, MEMSUFFIX)((uint64_t)(T0 + 0x14), 0);    glue(st32, MEMSUFFIX)((uint64_t)(T0 + 0x18), 0);    glue(st32, MEMSUFFIX)((uint64_t)(T0 + 0x1C), 0);    RETURN();}void OPPROTO glue(op_dcbz_l64_64, MEMSUFFIX) (void){    T0 &= ~((uint64_t)63);    glue(st32, MEMSUFFIX)((uint64_t)(T0 + 0x00), 0);    glue(st32, MEMSUFFIX)((uint64_t)(T0 + 0x04), 0);    glue(st32, MEMSUFFIX)((uint64_t)(T0 + 0x08), 0);    glue(st32, MEMSUFFIX)((uint64_t)(T0 + 0x0C), 0);    glue(st32, MEMSUFFIX)((uint64_t)(T0 + 0x10), 0);    glue(st32, MEMSUFFIX)((uint64_t)(T0 + 0x14), 0);    glue(st32, MEMSUFFIX)((uint64_t)(T0 + 0x18), 0);    glue(st32, MEMSUFFIX)((uint64_t)(T0 + 0x1C), 0);    glue(st32, MEMSUFFIX)((uint64_t)(T0 + 0x20UL), 0);    glue(st32, MEMSUFFIX)((uint64_t)(T0 + 0x24UL), 0);    glue(st32, MEMSUFFIX)((uint64_t)(T0 + 0x28UL), 0);    glue(st32, MEMSUFFIX)((uint64_t)(T0 + 0x2CUL), 0);    glue(st32, MEMSUFFIX)((uint64_t)(T0 + 0x30UL), 0);    glue(st32, MEMSUFFIX)((uint64_t)(T0 + 0x34UL), 0);    glue(st32, MEMSUFFIX)((uint64_t)(T0 + 0x38UL), 0);    glue(st32, MEMSUFFIX)((uint64_t)(T0 + 0x3CUL), 0);    RETURN();}void OPPROTO glue(op_dcbz_l128_64, MEMSUFFIX) (void){    T0 &= ~((uint64_t)127);    glue(st32, MEMSUFFIX)((uint64_t)(T0 + 0x00), 0);    glue(st32, MEMSUFFIX)((uint64_t)(T0 + 0x04), 0);    glue(st32, MEMSUFFIX)((uint64_t)(T0 + 0x08), 0);    glue(st32, MEMSUFFIX)((uint64_t)(T0 + 0x0C), 0);    glue(st32, MEMSUFFIX)((uint64_t)(T0 + 0x10), 0);    glue(st32, MEMSUFFIX)((uint64_t)(T0 + 0x14), 0);    glue(st32, MEMSUFFIX)((uint64_t)(T0 + 0x18), 0);    glue(st32, MEMSUFFIX)((uint64_t)(T0 + 0x1C), 0);    glue(st32, MEMSUFFIX)((uint64_t)(T0 + 0x20UL), 0);    glue(st32, MEMSUFFIX)((uint64_t)(T0 + 0x24UL), 0);    glue(st32, MEMSUFFIX)((uint64_t)(T0 + 0x28UL), 0);    glue(st32, MEMSUFFIX)((uint64_t)(T0 + 0x2CUL), 0);    glue(st32, MEMSUFFIX)((uint64_t)(T0 + 0x30UL), 0);    glue(st32, MEMSUFFIX)((uint64_t)(T0 + 0x34UL), 0);    glue(st32, MEMSUFFIX)((uint64_t)(T0 + 0x38UL), 0);    glue(st32, MEMSUFFIX)((uint64_t)(T0 + 0x3CUL), 0);    glue(st32, MEMSUFFIX)((uint64_t)(T0 + 0x40UL), 0);    glue(st32, MEMSUFFIX)((uint64_t)(T0 + 0x44UL), 0);    glue(st32, MEMSUFFIX)((uint64_t)(T0 + 0x48UL), 0);    glue(st32, MEMSUFFIX)((uint64_t)(T0 + 0x4CUL), 0);    glue(st32, MEMSUFFIX)((uint64_t)(T0 + 0x50UL), 0);    glue(st32, MEMSUFFIX)((uint64_t)(T0 + 0x54UL), 0);    glue(st32, MEMSUFFIX)((uint64_t)(T0 + 0x58UL), 0);    glue(st32, MEMSUFFIX)((uint64_t)(T0 + 0x5CUL), 0);    glue(st32, MEMSUFFIX)((uint64_t)(T0 + 0x60UL), 0);    glue(st32, MEMSUFFIX)((uint64_t)(T0 + 0x64UL), 0);    glue(st32, MEMSUFFIX)((uint64_t)(T0 + 0x68UL), 0);    glue(st32, MEMSUFFIX)((uint64_t)(T0 + 0x6CUL), 0);    glue(st32, MEMSUFFIX)((uint64_t)(T0 + 0x70UL), 0);    glue(st32, MEMSUFFIX)((uint64_t)(T0 + 0x74UL), 0);    glue(st32, MEMSUFFIX)((uint64_t)(T0 + 0x78UL), 0);    glue(st32, MEMSUFFIX)((uint64_t)(T0 + 0x7CUL), 0);    RETURN();}void OPPROTO glue(op_dcbz_64, MEMSUFFIX) (void){    glue(do_dcbz_64, MEMSUFFIX)();    RETURN();}#endif/* Instruction cache block invalidate */void OPPROTO glue(op_icbi, MEMSUFFIX) (void){    glue(do_icbi, MEMSUFFIX)();    RETURN();}#if defined(TARGET_PPC64)void OPPROTO glue(op_icbi_64, MEMSUFFIX) (void){    glue(do_icbi_64, MEMSUFFIX)();    RETURN();}#endif/* External access */void OPPROTO glue(op_eciwx, MEMSUFFIX) (void){    T1 = glue(ldu32, MEMSUFFIX)((uint32_t)T0);    RETURN();}#if defined(TARGET_PPC64)void OPPROTO glue(op_eciwx_64, MEMSUFFIX) (void){    T1 = glue(ldu32, MEMSUFFIX)((uint64_t)T0);    RETURN();}#endifvoid OPPROTO glue(op_ecowx, MEMSUFFIX) (void)

⌨️ 快捷键说明

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