Make tb_alloc static
This function is only used within exec.c, so no need to make it public. Signed-off-by: Tristan Gingold <gingold@adacore.com> Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
This commit is contained in:
parent
6c5f738dae
commit
d1a1eb7472
@ -180,7 +180,6 @@ static inline unsigned int tb_phys_hash_func(tb_page_addr_t pc)
|
|||||||
return (pc >> 2) & (CODE_GEN_PHYS_HASH_SIZE - 1);
|
return (pc >> 2) & (CODE_GEN_PHYS_HASH_SIZE - 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
TranslationBlock *tb_alloc(target_ulong pc);
|
|
||||||
void tb_free(TranslationBlock *tb);
|
void tb_free(TranslationBlock *tb);
|
||||||
void tb_flush(CPUState *env);
|
void tb_flush(CPUState *env);
|
||||||
void tb_link_page(TranslationBlock *tb,
|
void tb_link_page(TranslationBlock *tb,
|
||||||
|
52
exec.c
52
exec.c
@ -649,6 +649,32 @@ void cpu_exec_init(CPUState *env)
|
|||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Allocate a new translation block. Flush the translation buffer if
|
||||||
|
too many translation blocks or too much generated code. */
|
||||||
|
static TranslationBlock *tb_alloc(target_ulong pc)
|
||||||
|
{
|
||||||
|
TranslationBlock *tb;
|
||||||
|
|
||||||
|
if (nb_tbs >= code_gen_max_blocks ||
|
||||||
|
(code_gen_ptr - code_gen_buffer) >= code_gen_buffer_max_size)
|
||||||
|
return NULL;
|
||||||
|
tb = &tbs[nb_tbs++];
|
||||||
|
tb->pc = pc;
|
||||||
|
tb->cflags = 0;
|
||||||
|
return tb;
|
||||||
|
}
|
||||||
|
|
||||||
|
void tb_free(TranslationBlock *tb)
|
||||||
|
{
|
||||||
|
/* In practice this is mostly used for single use temporary TB
|
||||||
|
Ignore the hard cases and just back up if this TB happens to
|
||||||
|
be the last one generated. */
|
||||||
|
if (nb_tbs > 0 && tb == &tbs[nb_tbs - 1]) {
|
||||||
|
code_gen_ptr = tb->tc_ptr;
|
||||||
|
nb_tbs--;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
static inline void invalidate_page_bitmap(PageDesc *p)
|
static inline void invalidate_page_bitmap(PageDesc *p)
|
||||||
{
|
{
|
||||||
if (p->code_bitmap) {
|
if (p->code_bitmap) {
|
||||||
@ -1226,32 +1252,6 @@ static inline void tb_alloc_page(TranslationBlock *tb,
|
|||||||
#endif /* TARGET_HAS_SMC */
|
#endif /* TARGET_HAS_SMC */
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Allocate a new translation block. Flush the translation buffer if
|
|
||||||
too many translation blocks or too much generated code. */
|
|
||||||
TranslationBlock *tb_alloc(target_ulong pc)
|
|
||||||
{
|
|
||||||
TranslationBlock *tb;
|
|
||||||
|
|
||||||
if (nb_tbs >= code_gen_max_blocks ||
|
|
||||||
(code_gen_ptr - code_gen_buffer) >= code_gen_buffer_max_size)
|
|
||||||
return NULL;
|
|
||||||
tb = &tbs[nb_tbs++];
|
|
||||||
tb->pc = pc;
|
|
||||||
tb->cflags = 0;
|
|
||||||
return tb;
|
|
||||||
}
|
|
||||||
|
|
||||||
void tb_free(TranslationBlock *tb)
|
|
||||||
{
|
|
||||||
/* In practice this is mostly used for single use temporary TB
|
|
||||||
Ignore the hard cases and just back up if this TB happens to
|
|
||||||
be the last one generated. */
|
|
||||||
if (nb_tbs > 0 && tb == &tbs[nb_tbs - 1]) {
|
|
||||||
code_gen_ptr = tb->tc_ptr;
|
|
||||||
nb_tbs--;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/* add a new TB and link it to the physical page tables. phys_page2 is
|
/* add a new TB and link it to the physical page tables. phys_page2 is
|
||||||
(-1) to indicate that only one page contains the TB. */
|
(-1) to indicate that only one page contains the TB. */
|
||||||
void tb_link_page(TranslationBlock *tb,
|
void tb_link_page(TranslationBlock *tb,
|
||||||
|
Loading…
Reference in New Issue
Block a user