| Branch: | Revision:

root / translate-all.c @ feature-archipelago

History | View | Annotate | Download (53.4 kB)

# Date Author Comment
29d8ec7b 02/11/2014 02:55 pm Edgar E. Iglesias

exec: Make tb_invalidate_phys_addr input an AS

No functional change.

Reviewed-by: Peter Maydell <>
Signed-off-by: Edgar E. Iglesias <>

47c16ed5 01/17/2014 08:12 pm Alexey Kardashevskiy

kvm: initialize qemu_host_page_size

There is a HOST_PAGE_ALIGN macro which makes sense for KVM accelerator
but it uses qemu_host_page_size/qemu_host_page_mask which initialized
for TCG only.

This moves qemu_host_page_size/qemu_host_page_mask initialization from...

eb2535f4 12/23/2013 04:32 pm Richard Henderson

cputlb: Tidy memset() of arrays

Don't duplicate the array length computation in the memset()
when plain sizeof() can produce the correct results.

Signed-off-by: Richard Henderson <>
Reviewed-by: Aurelien Jarno <>
Signed-off-by: Andreas Färber <>

03f49957 12/10/2013 12:29 pm Paolo Bonzini

split definitions for exec.c and translate-all.c radix trees

The exec.c and translate-all.c radix trees are quite different, and
the exec.c one in particular is not limited to the CPU---it can be
used also by devices that do DMA, and in that case the address space...

dbdbe0cd 10/10/2013 09:44 pm Richard Henderson

exec: Delete is_tcg_gen_code and GETRA_EXT

All implementations now boil down to GETRA.

Signed-off-by: Richard Henderson <>

227b8175 09/20/2013 07:09 pm Stefan Weil

translate-all: Fix formatting of dump output

The page dump writes a table with 3 abi_ulong values in each row.
These values take 8 or 16 characters (depending on sizeof abi_ulong).

Fix the table headings to be aligned with the table columns.

start end size prot...

bdc44640 09/03/2013 01:25 pm Andreas Färber

cpu: Use QTAILQ for CPU list

Introduce CPU_FOREACH(), CPU_FOREACH_SAFE() and CPU_NEXT() shorthand

Signed-off-by: Andreas Färber <>

d02532f0 07/23/2013 05:28 pm Alexander Graf

linux-user: Unlock mmap_lock when resuming guest from page_unprotect

The page_unprotect() function is running everything locked. Before every
potential exit path of the function mmap_unlock() gets called to make sure
we don't leak the lock.

However, the function calls tb_invalidate_phys_page() which again can...

182735ef 07/09/2013 10:32 pm Andreas Färber

cpu: Make first_cpu and next_cpu CPUState

Move next_cpu from CPU_COMMON to CPUState.
Move first_cpu variable to qom/cpu.h.

gdbstub needs to use CPUState::env_ptr for now.
cpu_copy() no longer needs to save and restore cpu_next.

Acked-by: Paolo Bonzini <>...

4917cf44 07/09/2013 10:20 pm Andreas Färber

cpu: Replace cpu_single_env with CPUState current_cpu

Move it to qom/cpu.h.

Signed-off-by: Andreas Färber <>

5c8a00ce 06/20/2013 05:32 pm Paolo Bonzini

exec: return MemoryRegion from address_space_translate

Only address_space_translate_for_iotlb needs to return the section.
Every caller of address_space_translate now uses only section->mr,
return it directly.

Signed-off-by: Paolo Bonzini <>

4a136e0a 06/12/2013 06:20 pm Claudio Fontana

tcg/aarch64: implement new TCG target for aarch64

add preliminary support for TCG target aarch64.

Signed-off-by: Claudio Fontana <>
Reviewed-by: Richard Henderson <>
Reviewed-by: Peter Maydell <>...

149f54b5 05/29/2013 05:26 pm Paolo Bonzini

memory: add address_space_translate

Using phys_page_find to translate an AddressSpace to a MemoryRegionSection
is unwieldy. It requires to pass the page index rather than the address,
and later memory_region_section_addr has to be called. Replace
memory_region_section_addr with a function that does all of it: call...

fd469df9 05/24/2013 09:47 pm Anthony Liguori

Merge remote-tracking branch 'bonzini/iommu-for-anthony' into staging

  1. By Paolo Bonzini (11) and others
  2. Via Paolo Bonzini
    • bonzini/iommu-for-anthony:
      memory: clean up phys_page_find
      memory: populate FlatView for new address spaces
      memory: limit sections in the radix tree to the actual address space size...
4b81126e 05/24/2013 07:42 pm Jan Kiszka

memory: Replace open-coded memory_region_is_romd

Improves readability.

Reviewed-by: Peter Maydell <>
Signed-off-by: Jan Kiszka <>

7bc9315d 05/18/2013 03:35 pm liguang

translate: remove redundantly included qemu/timer.h

Signed-off-by: liguang <>
Reviewed-By: Peter Maydell <>
Signed-off-by: Michael Tokarev <>

c8ff5daa 04/27/2013 12:02 am Alexander Graf

PPC: Fix compile with profiling enabled

When using profiling, we rely on profile_getclock() being available
at our disposal. Somehow that function got moved from an indirect
include we used to have in translate-init.c, so that we were now
left not properly compiling anymore....

0aa09897 04/22/2013 04:47 pm Alexey Kardashevskiy

translate-all: fix compiler warning and linked error

The code did use profile_getclock() but did not include
include/qemu/timer.h where this function is defined. The patch fixes this.

Signed-off-by: Alexey Kardashevskiy <>
Message-id: ...

0bc3cd62 04/15/2013 07:19 pm Paolo Bonzini

include: avoid useless includes of exec/ headers

Headers in include/exec/ are for the deepest innards of QEMU,
they should almost never be included directly.

Signed-off-by: Paolo Bonzini <>

52ae646d 03/22/2013 10:38 pm Yeongkyoon Lee

tcg: Fix occasional TCG broken problem when ldst optimization enabled

is_tcg_gen_code() checks the upper limit of TCG generated code range wrong, so
that TCG could get broken occasionally only when CONFIG_QEMU_LDST_OPTIMIZATION
enabled. The reason is code_gen_buffer_max_size does not cover the upper range...

259186a7 03/12/2013 11:35 am Andreas Färber

cpu: Move halted and interrupt_request fields to CPUState

Both fields are used in VMState, thus need to be moved together.
Explicitly zero them on reset since they were located before

Pass PowerPCCPU to kvmppc_handle_halt().

Signed-off-by: Andreas Färber <>

c3affe56 03/12/2013 11:35 am Andreas Färber

cpu: Pass CPUState to cpu_interrupt()

Move it to qom/cpu.h to avoid issues with include order.

Change pc_acpi_smi_interrupt() opaque to X86CPU.

Signed-off-by: Andreas Färber <>

3a808cc4 03/03/2013 04:28 pm Peter Maydell

translate-all.c: Remove cpu_unlink_tb()

The (unsafe) function cpu_unlink_tb() is now unused, so we can simply
remove it and any code that was only used by it.

Signed-off-by: Peter Maydell <>
Reviewed-by: Richard Henderson <>...

378df4b2 03/03/2013 04:28 pm Peter Maydell

Handle CPU interrupts by inline checking of a flag

Fix some of the nasty TCG race conditions and crashes by implementing
cpu_exit() as setting a flag which is checked at the start of each TB.
This avoids crashes if a thread or signal handler calls cpu_exit()...

d77953b9 02/16/2013 03:51 pm Andreas Färber

cpu: Move current_tb field to CPUState

Explictly NULL it on CPU reset since it was located before breakpoints.

Change vapic_report_tpr_access() argument to CPUState. This also
resolves the use of void* for cpu.h independence.
Change vAPIC patch_instruction() argument to X86CPU....

907a5e32 02/16/2013 03:51 pm Andreas Färber

cputlb: Pass CPUState to cpu_unlink_tb()

CPUArchState is no longer needed.

Signed-off-by: Andreas Färber <>

5e5f07e0 02/16/2013 12:41 pm Evgeny Voevodin

TCG: Move translation block variables to new context inside tcg_ctx: tb_ctx

It's worth to clean-up translation blocks variables and move them
into one context as was suggested by Swirl.
Also if we use this context directly inside tcg_ctx, then it
speeds up code generation a bit....

0b0d3320 02/16/2013 12:40 pm Evgeny Voevodin

TCG: Final globals clean-up

Signed-off-by: Evgeny Voevodin <>
Signed-off-by: Blue Swirl <>

0c884d16 12/22/2012 02:06 pm 陳韋任 (Wei-Ren Chen)

translate-all.c: Use tb1->phys_hash_next directly in tb_remove

When tb_remove was first commited at fd6ce8f6, there were three different
calls pass different names to offsetof. In current codebase, the other two
calls are replaced with tb_page_remove. There is no need to have a general...
1de7afc9 12/19/2012 09:32 am Paolo Bonzini

misc: move include files to include/qemu/

Signed-off-by: Paolo Bonzini <>

022c62cb 12/19/2012 09:31 am Paolo Bonzini

exec: move include files to include/exec/

Signed-off-by: Paolo Bonzini <>

76cad711 12/19/2012 09:29 am Paolo Bonzini

build: kill libdis, move disassemblers to disas/

Signed-off-by: Paolo Bonzini <>

a8a826a3 12/16/2012 10:35 am Blue Swirl

exec: refactor cpu_restore_state

Refactor common code around calls to cpu_restore_state().

tb_find_pc() has now no external users, make it static.

Signed-off-by: Blue Swirl <>

5b6dd868 12/16/2012 10:28 am Blue Swirl

exec: move TB handling to translate-all.c

Signed-off-by: Blue Swirl <>

ab1103de 12/08/2012 04:24 pm Evgeny Voevodin

TCG: Use gen_opc_instr_start from context instead of global variable.

Signed-off-by: Evgeny Voevodin <>
Signed-off-by: Blue Swirl <>

94788f54 12/08/2012 04:24 pm Evgeny Voevodin

TCG: Remove unused global gen_opc_ arrays.

Signed-off-by: Evgeny Voevodin <>
Signed-off-by: Blue Swirl <>

c9c99c22 12/08/2012 04:24 pm Evgeny Voevodin

TCG: Use gen_opc_icount from context instead of global variable.

Signed-off-by: Evgeny Voevodin <>
Signed-off-by: Blue Swirl <>

83eeb396 11/17/2012 03:53 pm Evgeny Voevodin

TCG: Remove unused global variables

Signed-off-by: Evgeny Voevodin <>
Reviewed-by: Richard Henderson <>
Signed-off-by: Blue Swirl <>

6375e09e 04/07/2012 02:27 pm Stefan Weil

w64: Fix data type of tb_next and other variables used for host addresses

QEMU host addresses must use uintptr_t to be portable for hosts with
an unusual size of long (w64).

tb_jmp_offset is an uint16_t value, therefore the local variable offset
in function tb_set_jmp_target was changed from unsigned long to uint16_t....

9349b4f9 03/14/2012 11:20 pm Andreas Färber

Rename CPUState -> CPUArchState

Scripted conversion:
for file in .[hc] hw/.[hc] hw/kvm/*.[hc] linux-user/*.[hc] linux-user/m68k/*.[hc] bsd-user/*.[hc] darwin-user/*.[hc] tcg/*/*.[hc] target-*/cpu.h; do
sed -i "s/CPUState/CPUArchState/g" $file

614f104d 06/26/2011 09:25 pm Blue Swirl

Delegate setup of TCG temporaries to targets

Delegate TCG temp_buf setup to targets, so that they can use a stack
frame later instead.

Signed-off-by: Blue Swirl <>

2b41f10e 06/26/2011 09:25 pm Blue Swirl

Remove exec-all.h include directives

Most exec-all.h include directives are now useless, remove them.

Signed-off-by: Blue Swirl <>

618ba8e6 04/20/2011 11:37 am Stefan Weil

Remove unused function parameter from cpu_restore_state

The previous patch removed the need for parameter puc.
Is is now unused, so remove it.

Cc: Aurelien Jarno <>
Reviewed-by: Peter Maydell <>
Signed-off-by: Stefan Weil <>

e87b7cb0 04/20/2011 11:33 am Stefan Weil

Remove unused function parameters from gen_pc_load and rename the function

Function gen_pc_load was introduced in commit
The only reason for parameter searched_pc was
a debug statement in target-i386/translate.c....

239fda31 06/09/2010 05:10 pm Aurelien Jarno

tcg: get rid of copy_size in TCGOpDef

copy_size is a left-over from the dyngen era, remove it.

Signed-off-by: Aurelien Jarno <>

1a7ff922 04/08/2010 10:34 pm Paolo Bonzini

remove TARGET_* defines from translate-all.c

Signed-off-by: Paolo Bonzini <>
Signed-off-by: Aurelien Jarno <>

efc0a514 04/08/2010 10:05 pm Filip Navara

Shrink tb_jmp_offset to two entries, the other two are never used.

Signed-Off-By: Riku Voipio <>
Signed-off-by: Filip Navara <>
Signed-off-by: Aurelien Jarno <>

29e922b6 03/29/2010 10:24 pm Blue Swirl

Compile qemu-timer only once

Arrange various declarations so that also non-CPU code can access
them, adjust users.

Move CPU specific code to cpus.c.

Signed-off-by: Blue Swirl <>

8167ee88 07/16/2009 11:47 pm Blue Swirl

Update to a hopefully more future proof FSF address

Signed-off-by: Blue Swirl <>

8fec2b8c 01/16/2009 12:36 am aliguori

global s/loglevel & X/qemu_loglevel_mask(X)/ (Eduardo Habkost)

These are references to 'loglevel' that aren't on a simple 'if (loglevel &
X) qemu_log()' statement.

Signed-off-by: Eduardo Habkost <>
Signed-off-by: Anthony Liguori <>...

31b1a7b4 01/16/2009 12:35 am aliguori

global s/fflush(logfile)/qemu_log_flush()/ (Eduardo Habkost)

Signed-off-by: Eduardo Habkost <>
Signed-off-by: Anthony Liguori <>

git-svn-id: svn:// c046a42c-6fe2-441c-8c8c-71466251a162

93fcfe39 01/16/2009 12:34 am aliguori

Convert references to logfile/loglevel to use qemu_log*() macros

This is a large patch that changes all occurrences of logfile/loglevel
global variables to use the new qemu_log*() macros.

Signed-off-by: Eduardo Habkost <>
Signed-off-by: Anthony Liguori <>...

fad6cb1a 01/05/2009 12:05 am aurel32

Update FSF address in GPL/LGPL boilerplate

The attached patch updates the FSF address in the GPL/LGPL boilerplate
in most GPL/LGPLed files, and also in COPYING.LIB.

Signed-off-by: Stuart Brady <>
Signed-off-by: Aurelien Jarno <>...

54604f74 12/07/2008 10:35 pm aurel32

Some cleanups after dyngen removal

1. hostregs_helper.h: fix comment
2. translate-all.c: rename dyngen_code(_search_pc) to
3. tcg.c:
- rename dyngen_table_op_count to tcg_table_op_count
- no need to generate a log of dyngen ops generated...

2cfc5f17 07/18/2008 09:01 pm ths

Small cleanup of gen_intermediate_code(_internal), by Laurent Desnogues.

git-svn-id: svn:// c046a42c-6fe2-441c-8c8c-71466251a162

2e70f6ef 06/29/2008 04:03 am pbrook

Add instruction counter.

git-svn-id: svn:// c046a42c-6fe2-441c-8c8c-71466251a162

b67d9a52 05/23/2008 12:57 pm bellard

TCG profiler clean up

git-svn-id: svn:// c046a42c-6fe2-441c-8c8c-71466251a162

a57f6316 05/12/2008 03:00 pm bellard

removed unused code

git-svn-id: svn:// c046a42c-6fe2-441c-8c8c-71466251a162

d2856f1a 04/28/2008 03:32 am aurel32

Factorize code in translate.c

(Glauber Costa)

git-svn-id: svn:// c046a42c-6fe2-441c-8c8c-71466251a162

a20e31dc 04/08/2008 10:29 pm blueswir1

Use a common constant for temp_buf size

git-svn-id: svn:// c046a42c-6fe2-441c-8c8c-71466251a162

a208e54a 03/31/2008 08:07 pm pbrook

TCG op size estimation fix.

git-svn-id: svn:// c046a42c-6fe2-441c-8c8c-71466251a162

e62b5b13 03/14/2008 03:04 am edgar_igl
  • Add a model of the ETRAX interrupt controller.
  • Clean up the interrupt handling a bit.
  • Connect some NOR flash to the test board.

git-svn-id: svn:// c046a42c-6fe2-441c-8c8c-71466251a162

623e265c 02/10/2008 04:09 pm pbrook

Simplify TCG relocation bugfix.

git-svn-id: svn:// c046a42c-6fe2-441c-8c8c-71466251a162

2ba1eeb6 02/10/2008 04:41 am pbrook

Fix TCG relocation bug (exposed by fault after brcond op). Add FIXME for
annother potential bug.

git-svn-id: svn:// c046a42c-6fe2-441c-8c8c-71466251a162

57fec1fe 02/01/2008 12:50 pm bellard

use the TCG code generator

git-svn-id: svn:// c046a42c-6fe2-441c-8c8c-71466251a162

d07bde88 12/11/2007 09:35 pm blueswir1

Fix code generation buffer overflow reported by TeLeMan

git-svn-id: svn:// c046a42c-6fe2-441c-8c8c-71466251a162

823029f9 12/02/2007 08:10 am ths

SH4 delay slot code update, by Magnus Damm.

git-svn-id: svn:// c046a42c-6fe2-441c-8c8c-71466251a162

7863667f 11/16/2007 04:11 pm j_mayer

Always make PowerPC hypervisor mode memory accesses and instructions
available for full system emulation, then removing all #if TARGET_PPC64H
from micro-ops and code translator.
Add new macros to dramatically simplify memory access tables definitions
in target-ppc/translate.c....

745cacc7 11/11/2007 07:26 pm bellard

removed warning

git-svn-id: svn:// c046a42c-6fe2-441c-8c8c-71466251a162

ec6338ba 11/08/2007 04:25 pm bellard

removed obsolete x86 code copy support

git-svn-id: svn:// c046a42c-6fe2-441c-8c8c-71466251a162

3b46e624 09/17/2007 11:09 am ths

find -type f | xargs sed -i 's/[\t ]*$//g' # Yes, again. Note the star in the regex.

git-svn-id: svn:// c046a42c-6fe2-441c-8c8c-71466251a162

5fafdf24 09/17/2007 12:08 am ths

find -type f | xargs sed -i 's/[\t ]$//g' # on most files

git-svn-id: svn:// c046a42c-6fe2-441c-8c8c-71466251a162

ead9360e 09/06/2007 03:18 am ths

Partial support for 34K multithreading, not functional yet.

git-svn-id: svn:// c046a42c-6fe2-441c-8c8c-71466251a162

eddf68a6 04/05/2007 10:22 am j_mayer

Integrate Alpha target in Qemu core.

git-svn-id: svn:// c046a42c-6fe2-441c-8c8c-71466251a162

e6e5906b 10/22/2006 03:18 am pbrook

ColdFire target.

git-svn-id: svn:// c046a42c-6fe2-441c-8c8c-71466251a162

30d6cb84 12/05/2005 09:56 pm bellard

correct MIPS state restoring (Daniel Jacobowitz)

git-svn-id: svn:// c046a42c-6fe2-441c-8c8c-71466251a162

6af0bf9c 07/02/2005 05:58 pm bellard

MIPS target (Jocelyn Mayer)

git-svn-id: svn:// c046a42c-6fe2-441c-8c8c-71466251a162

c3278b7b 03/20/2005 02:43 pm bellard

sparc exception fix (we go up to the shell prompt)

git-svn-id: svn:// c046a42c-6fe2-441c-8c8c-71466251a162

4f716dc6 03/13/2005 06:53 pm bellard

avoid redefinition problems

git-svn-id: svn:// c046a42c-6fe2-441c-8c8c-71466251a162

c4687878 01/04/2005 01:44 am bellard

labels support in dyngen

git-svn-id: svn:// c046a42c-6fe2-441c-8c8c-71466251a162

e95c8d51 10/01/2004 01:22 am bellard

full system SPARC emulation (Blue Swirl)

git-svn-id: svn:// c046a42c-6fe2-441c-8c8c-71466251a162

4f2ac237 04/26/2004 10:44 pm bellard

amd64 port (Jocelyn Mayer)

git-svn-id: svn:// c046a42c-6fe2-441c-8c8c-71466251a162

a541f297 04/12/2004 11:39 pm bellard

PowerPC system emulation fixes (Jocelyn Mayer)

git-svn-id: svn:// c046a42c-6fe2-441c-8c8c-71466251a162

f193c797 03/21/2004 07:06 pm bellard

do not depend on thunk.h - more log items

git-svn-id: svn:// c046a42c-6fe2-441c-8c8c-71466251a162

58fe2f10 02/17/2004 12:11 am bellard

experimental code copy support

git-svn-id: svn:// c046a42c-6fe2-441c-8c8c-71466251a162

3f5dcc34 01/19/2004 12:44 am bellard

PowerPC merge (Jocelyn Mayer)

git-svn-id: svn:// c046a42c-6fe2-441c-8c8c-71466251a162

af5ad107 01/05/2004 01:28 am bellard

infer access type

git-svn-id: svn:// c046a42c-6fe2-441c-8c8c-71466251a162

6dca2016 11/23/2003 07:32 pm bellard

fixed PPC state reloading

git-svn-id: svn:// c046a42c-6fe2-441c-8c8c-71466251a162

d3eead2e 09/30/2003 11:59 pm bellard

new directory structure

git-svn-id: svn:// c046a42c-6fe2-441c-8c8c-71466251a162