xref: /qemu/target/i386/tcg/seg_helper.h (revision fc524567087c2537b5103cdfc1d41e4f442892b6)
130493a03SClaudio Fontana /*
230493a03SClaudio Fontana  *  x86 segmentation related helpers macros
330493a03SClaudio Fontana  *
430493a03SClaudio Fontana  *  Copyright (c) 2003 Fabrice Bellard
530493a03SClaudio Fontana  *
630493a03SClaudio Fontana  * This library is free software; you can redistribute it and/or
730493a03SClaudio Fontana  * modify it under the terms of the GNU Lesser General Public
830493a03SClaudio Fontana  * License as published by the Free Software Foundation; either
930493a03SClaudio Fontana  * version 2.1 of the License, or (at your option) any later version.
1030493a03SClaudio Fontana  *
1130493a03SClaudio Fontana  * This library is distributed in the hope that it will be useful,
1230493a03SClaudio Fontana  * but WITHOUT ANY WARRANTY; without even the implied warranty of
1330493a03SClaudio Fontana  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
1430493a03SClaudio Fontana  * Lesser General Public License for more details.
1530493a03SClaudio Fontana  *
1630493a03SClaudio Fontana  * You should have received a copy of the GNU Lesser General Public
1730493a03SClaudio Fontana  * License along with this library; if not, see <http://www.gnu.org/licenses/>.
1830493a03SClaudio Fontana  */
1930493a03SClaudio Fontana 
2030493a03SClaudio Fontana #ifndef SEG_HELPER_H
2130493a03SClaudio Fontana #define SEG_HELPER_H
2230493a03SClaudio Fontana 
23*611c34a7SPhilippe Mathieu-Daudé #include "cpu.h"
24*611c34a7SPhilippe Mathieu-Daudé 
2530493a03SClaudio Fontana //#define DEBUG_PCALL
2630493a03SClaudio Fontana 
2730493a03SClaudio Fontana #ifdef DEBUG_PCALL
2830493a03SClaudio Fontana # define LOG_PCALL(...) qemu_log_mask(CPU_LOG_PCALL, ## __VA_ARGS__)
2930493a03SClaudio Fontana # define LOG_PCALL_STATE(cpu)                                  \
3030493a03SClaudio Fontana     log_cpu_state_mask(CPU_LOG_PCALL, (cpu), CPU_DUMP_CCOP)
3130493a03SClaudio Fontana #else
3230493a03SClaudio Fontana # define LOG_PCALL(...) do { } while (0)
3330493a03SClaudio Fontana # define LOG_PCALL_STATE(cpu) do { } while (0)
3430493a03SClaudio Fontana #endif
3530493a03SClaudio Fontana 
36*611c34a7SPhilippe Mathieu-Daudé int cpu_mmu_index_kernel(CPUX86State *env);
37*611c34a7SPhilippe Mathieu-Daudé 
3830493a03SClaudio Fontana /*
3930493a03SClaudio Fontana  * TODO: Convert callers to compute cpu_mmu_index_kernel once
4030493a03SClaudio Fontana  * and use *_mmuidx_ra directly.
4130493a03SClaudio Fontana  */
4230493a03SClaudio Fontana #define cpu_lduw_kernel_ra(e, p, r) \
4330493a03SClaudio Fontana     cpu_lduw_mmuidx_ra(e, p, cpu_mmu_index_kernel(e), r)
4430493a03SClaudio Fontana #define cpu_ldl_kernel_ra(e, p, r) \
4530493a03SClaudio Fontana     cpu_ldl_mmuidx_ra(e, p, cpu_mmu_index_kernel(e), r)
4630493a03SClaudio Fontana #define cpu_ldq_kernel_ra(e, p, r) \
4730493a03SClaudio Fontana     cpu_ldq_mmuidx_ra(e, p, cpu_mmu_index_kernel(e), r)
4830493a03SClaudio Fontana 
4930493a03SClaudio Fontana #define cpu_stw_kernel_ra(e, p, v, r) \
5030493a03SClaudio Fontana     cpu_stw_mmuidx_ra(e, p, v, cpu_mmu_index_kernel(e), r)
5130493a03SClaudio Fontana #define cpu_stl_kernel_ra(e, p, v, r) \
5230493a03SClaudio Fontana     cpu_stl_mmuidx_ra(e, p, v, cpu_mmu_index_kernel(e), r)
5330493a03SClaudio Fontana #define cpu_stq_kernel_ra(e, p, v, r) \
5430493a03SClaudio Fontana     cpu_stq_mmuidx_ra(e, p, v, cpu_mmu_index_kernel(e), r)
5530493a03SClaudio Fontana 
5630493a03SClaudio Fontana #define cpu_lduw_kernel(e, p)    cpu_lduw_kernel_ra(e, p, 0)
5730493a03SClaudio Fontana #define cpu_ldl_kernel(e, p)     cpu_ldl_kernel_ra(e, p, 0)
5830493a03SClaudio Fontana #define cpu_ldq_kernel(e, p)     cpu_ldq_kernel_ra(e, p, 0)
5930493a03SClaudio Fontana 
6030493a03SClaudio Fontana #define cpu_stw_kernel(e, p, v)  cpu_stw_kernel_ra(e, p, v, 0)
6130493a03SClaudio Fontana #define cpu_stl_kernel(e, p, v)  cpu_stl_kernel_ra(e, p, v, 0)
6230493a03SClaudio Fontana #define cpu_stq_kernel(e, p, v)  cpu_stq_kernel_ra(e, p, v, 0)
6330493a03SClaudio Fontana 
6430493a03SClaudio Fontana #endif /* SEG_HELPER_H */
65