mirror of
https://git.proxmox.com/git/qemu
synced 2025-06-15 14:32:03 +00:00
tcg-s390: Allocate the code_gen_buffer near the main program.
This allows the use of direct calls to the helpers, and a direct branch back to the epilogue. Signed-off-by: Richard Henderson <rth@twiddle.net> Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
This commit is contained in:
parent
1bcaae666f
commit
eba0b89379
7
exec.c
7
exec.c
@ -519,6 +519,13 @@ static void code_gen_alloc(unsigned long tb_size)
|
|||||||
start = (void *) 0x01000000UL;
|
start = (void *) 0x01000000UL;
|
||||||
if (code_gen_buffer_size > 16 * 1024 * 1024)
|
if (code_gen_buffer_size > 16 * 1024 * 1024)
|
||||||
code_gen_buffer_size = 16 * 1024 * 1024;
|
code_gen_buffer_size = 16 * 1024 * 1024;
|
||||||
|
#elif defined(__s390x__)
|
||||||
|
/* Map the buffer so that we can use direct calls and branches. */
|
||||||
|
/* We have a +- 4GB range on the branches; leave some slop. */
|
||||||
|
if (code_gen_buffer_size > (3ul * 1024 * 1024 * 1024)) {
|
||||||
|
code_gen_buffer_size = 3ul * 1024 * 1024 * 1024;
|
||||||
|
}
|
||||||
|
start = (void *)0x90000000UL;
|
||||||
#endif
|
#endif
|
||||||
code_gen_buffer = mmap(start, code_gen_buffer_size,
|
code_gen_buffer = mmap(start, code_gen_buffer_size,
|
||||||
PROT_WRITE | PROT_READ | PROT_EXEC,
|
PROT_WRITE | PROT_READ | PROT_EXEC,
|
||||||
|
Loading…
Reference in New Issue
Block a user