mirror of https://gitee.com/openkylin/qemu.git
tcg: Split out MemOpIdx to exec/memopidx.h
Move this code from tcg/tcg.h to its own header. Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org> Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
This commit is contained in:
parent
9002ffcb72
commit
abe2e23eb7
|
@ -0,0 +1,55 @@
|
|||
/*
|
||||
* Combine the MemOp and mmu_idx parameters into a single value.
|
||||
*
|
||||
* Authors:
|
||||
* Richard Henderson <rth@twiddle.net>
|
||||
*
|
||||
* This work is licensed under the terms of the GNU GPL, version 2 or later.
|
||||
* See the COPYING file in the top-level directory.
|
||||
*/
|
||||
|
||||
#ifndef EXEC_MEMOPIDX_H
|
||||
#define EXEC_MEMOPIDX_H 1
|
||||
|
||||
#include "exec/memop.h"
|
||||
|
||||
typedef uint32_t MemOpIdx;
|
||||
|
||||
/**
|
||||
* make_memop_idx
|
||||
* @op: memory operation
|
||||
* @idx: mmu index
|
||||
*
|
||||
* Encode these values into a single parameter.
|
||||
*/
|
||||
static inline MemOpIdx make_memop_idx(MemOp op, unsigned idx)
|
||||
{
|
||||
#ifdef CONFIG_DEBUG_TCG
|
||||
assert(idx <= 15);
|
||||
#endif
|
||||
return (op << 4) | idx;
|
||||
}
|
||||
|
||||
/**
|
||||
* get_memop
|
||||
* @oi: combined op/idx parameter
|
||||
*
|
||||
* Extract the memory operation from the combined value.
|
||||
*/
|
||||
static inline MemOp get_memop(MemOpIdx oi)
|
||||
{
|
||||
return oi >> 4;
|
||||
}
|
||||
|
||||
/**
|
||||
* get_mmuidx
|
||||
* @oi: combined op/idx parameter
|
||||
*
|
||||
* Extract the mmu index from the combined value.
|
||||
*/
|
||||
static inline unsigned get_mmuidx(MemOpIdx oi)
|
||||
{
|
||||
return oi & 15;
|
||||
}
|
||||
|
||||
#endif
|
|
@ -27,6 +27,7 @@
|
|||
|
||||
#include "cpu.h"
|
||||
#include "exec/memop.h"
|
||||
#include "exec/memopidx.h"
|
||||
#include "qemu/bitops.h"
|
||||
#include "qemu/plugin.h"
|
||||
#include "qemu/queue.h"
|
||||
|
@ -1147,44 +1148,6 @@ static inline size_t tcg_current_code_size(TCGContext *s)
|
|||
return tcg_ptr_byte_diff(s->code_ptr, s->code_buf);
|
||||
}
|
||||
|
||||
/* Combine the MemOp and mmu_idx parameters into a single value. */
|
||||
typedef uint32_t MemOpIdx;
|
||||
|
||||
/**
|
||||
* make_memop_idx
|
||||
* @op: memory operation
|
||||
* @idx: mmu index
|
||||
*
|
||||
* Encode these values into a single parameter.
|
||||
*/
|
||||
static inline MemOpIdx make_memop_idx(MemOp op, unsigned idx)
|
||||
{
|
||||
tcg_debug_assert(idx <= 15);
|
||||
return (op << 4) | idx;
|
||||
}
|
||||
|
||||
/**
|
||||
* get_memop
|
||||
* @oi: combined op/idx parameter
|
||||
*
|
||||
* Extract the memory operation from the combined value.
|
||||
*/
|
||||
static inline MemOp get_memop(MemOpIdx oi)
|
||||
{
|
||||
return oi >> 4;
|
||||
}
|
||||
|
||||
/**
|
||||
* get_mmuidx
|
||||
* @oi: combined op/idx parameter
|
||||
*
|
||||
* Extract the mmu index from the combined value.
|
||||
*/
|
||||
static inline unsigned get_mmuidx(MemOpIdx oi)
|
||||
{
|
||||
return oi & 15;
|
||||
}
|
||||
|
||||
/**
|
||||
* tcg_qemu_tb_exec:
|
||||
* @env: pointer to CPUArchState for the CPU
|
||||
|
|
Loading…
Reference in New Issue