summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* sd: Avoid access to NULL BlockDriverStateAndreas Färber2013-10-171-1/+1
| | | | | | | | | | | | | | Commit 4f8a066b5fc254eeaabbbde56ba4f5b29cc68fdf (blockdev: Remove IF_* check for read-only blockdev_init) added a usage of bdrv_is_read_only() to sd_init(), which is called for versatilepb, versatileab and xilinx-zynq-a9 machines among others with NULL argument by default, causing the new qom-test to fail. Add a check to prevent this. Suggested-by: Kevin Wolf <kwolf@redhat.com> Signed-off-by: Andreas Färber <afaerber@suse.de> Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
* hmp: drop bogus "[not inserted]"Mike Qiu2013-10-171-2/+0Star
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Commit 3e9fab690d59ac15956c3733fe0794ce1ae4c4af ("block: Add support for throttling burst max in QMP and the command line.") introduced bogus "[not inserted]" output, possibly due to a merge failure. Remove this artifact. Output of 'info block' scsi0-hd0: /images/f18-ppc64.qcow2 (qcow2) [not inserted] scsi0-cd2: [not inserted] Removable device: not locked, tray closed floppy0: [not inserted] Removable device: not locked, tray closed sd0: [not inserted] Removable device: not locked, tray closed There will be no additional lines between scsi0-hd0 and scsi0-cd2. At the same time, scsi0-hd0 already inserted, but still has '[not inserted]' flag. This line should be removed. This patch is to solve this. Signed-off-by: Mike Qiu <qiudayu@linux.vnet.ibm.com> Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
* Merge remote-tracking branch 'rth/tcg-ldst-6' into stagingAnthony Liguori2013-10-1410-901/+722Star
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | # By Richard Henderson # Via Richard Henderson * rth/tcg-ldst-6: target-alpha: Convert to new ldst opcodes tcg-ppc64: Support new ldst opcodes tcg-ppc: Support new ldst opcodes tcg-ppc64: Convert to le/be ldst helpers tcg-ppc: Convert to le/be ldst helpers tcg-ppc64: Use TCGMemOp within qemu_ldst routines tcg-ppc: Use TCGMemOp within qemu_ldst routines tcg-arm: Improve GUEST_BASE qemu_ld/st tcg-arm: Convert to new ldst opcodes tcg-arm: Tidy variable naming convention in qemu_ld/st tcg-arm: Convert to le/be ldst helpers tcg-arm: Use TCGMemOp within qemu_ldst routines tcg-i386: Support new ldst opcodes tcg-i386: Remove "cb" output restriction from qemu_st8 for i386 tcg-i386: Tidy softmmu routines tcg-i386: Use TCGMemOp within qemu_ldst routines tcg: Use TCGMemOp for TCGLabelQemuLdst.opc Message-id: 1381620683-4568-1-git-send-email-rth@twiddle.net Signed-off-by: Anthony Liguori <aliguori@amazon.com>
| * target-alpha: Convert to new ldst opcodesRichard Henderson2013-10-131-34/+15Star
| | | | | | | | | | | | | | | | | | | | | | | | | | Or, partially. The fundamental primitives for the port are gen_load_mem and gen_store_mem, which take a callback to emit the memory operation. For that, we continue to use the original inline functions that forward to the new ops, rather than replicate the same thing privately. That said, all free-standing calls to tcg_gen_qemu_* have been converted. The 32-bit floating-point references now use _i32 opcodes, eliminating a truncate or extension. Signed-off-by: Richard Henderson <rth@twiddle.net>
| * tcg-ppc64: Support new ldst opcodesRichard Henderson2013-10-132-62/+17Star
| | | | | | | | Signed-off-by: Richard Henderson <rth@twiddle.net>
| * tcg-ppc: Support new ldst opcodesRichard Henderson2013-10-132-66/+33Star
| | | | | | | | Signed-off-by: Richard Henderson <rth@twiddle.net>
| * tcg-ppc64: Convert to le/be ldst helpersRichard Henderson2013-10-131-16/+22
| | | | | | | | Signed-off-by: Richard Henderson <rth@twiddle.net>
| * tcg-ppc: Convert to le/be ldst helpersRichard Henderson2013-10-131-24/+33
| | | | | | | | Signed-off-by: Richard Henderson <rth@twiddle.net>
| * tcg-ppc64: Use TCGMemOp within qemu_ldst routinesRichard Henderson2013-10-131-39/+45
| | | | | | | | Signed-off-by: Richard Henderson <rth@twiddle.net>
| * tcg-ppc: Use TCGMemOp within qemu_ldst routinesRichard Henderson2013-10-131-56/+48Star
| | | | | | | | Signed-off-by: Richard Henderson <rth@twiddle.net>
| * tcg-arm: Improve GUEST_BASE qemu_ld/stRichard Henderson2013-10-131-104/+116
| | | | | | | | | | | | | | | | | | | | | | | | If we pull the code to emit the actual load/store into a subroutine, we can share the reg+reg addressing mode code between softmmu and usermode. This lets us load GUEST_BASE into a temporary register rather than attempting to add it piece-wise to the address. Which lets us use movw+movt for armv7, rather than (up to) 4 adds. Code size for pre-armv7 stays the same. Signed-off-by: Richard Henderson <rth@twiddle.net>
| * tcg-arm: Convert to new ldst opcodesRichard Henderson2013-10-132-71/+38Star
| | | | | | | | Signed-off-by: Richard Henderson <rth@twiddle.net>
| * tcg-arm: Tidy variable naming convention in qemu_ld/stRichard Henderson2013-10-131-115/+115
| | | | | | | | | | | | | | | | | | s/addr_reg2/addrhi/ s/addr_reg/addrlo/ s/data_reg2/datahi/ s/data_reg/datalo/ Signed-off-by: Richard Henderson <rth@twiddle.net>
| * tcg-arm: Convert to le/be ldst helpersRichard Henderson2013-10-131-21/+29
| | | | | | | | Signed-off-by: Richard Henderson <rth@twiddle.net>
| * tcg-arm: Use TCGMemOp within qemu_ldst routinesRichard Henderson2013-10-131-64/+61Star
| | | | | | | | Signed-off-by: Richard Henderson <rth@twiddle.net>
| * tcg-i386: Support new ldst opcodesRichard Henderson2013-10-132-90/+51Star
| | | | | | | | | | | | | | No support for helpers with non-default endianness yet, but good enough to test the opcodes. Signed-off-by: Richard Henderson <rth@twiddle.net>
| * tcg-i386: Remove "cb" output restriction from qemu_st8 for i386Richard Henderson2013-10-131-2/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Once we form a combined qemu_st_i32 opcode, we won't be able to have separate constraints based on size. This one is fairly easy to work around, since eax is available as a scratch register. When storing variable data, this tends to merely exchange one mov for another. E.g. -: mov %esi,%ecx ... -: mov %cl,(%edx) +: mov %esi,%eax +: mov %al,(%edx) Where we do have a regression is when storing constant data, in which we may load the constant into edi, when only ecx/ebx ought to be used. The proper way to recover this regression is to allow constants as arguments to qemu_st_i32, so that we never load the constant data into a register at all, must less the wrong register. TBD. Signed-off-by: Richard Henderson <rth@twiddle.net>
| * tcg-i386: Tidy softmmu routinesRichard Henderson2013-10-131-249/+208Star
| | | | | | | | | | | | | | | | | | | | | | Pass two TCGReg to tcg_out_tlb_load, rather than idx+args. Move ldst_optimization routines just below tcg_out_tlb_load to avoid the need for forward declarations. Use TCGReg enum in preference to int where apprpriate. Signed-off-by: Richard Henderson <rth@twiddle.net>
| * tcg-i386: Use TCGMemOp within qemu_ldst routinesRichard Henderson2013-10-131-64/+59Star
| | | | | | | | | | | | Step one in the transition, with constants passed down from tcg_out_op. Signed-off-by: Richard Henderson <rth@twiddle.net>
| * tcg: Use TCGMemOp for TCGLabelQemuLdst.opcRichard Henderson2013-10-131-1/+1
| | | | | | | | Signed-off-by: Richard Henderson <rth@twiddle.net>
* | Merge remote-tracking branch 'jliu/or32' into stagingAnthony Liguori2013-10-141-8/+1Star
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | # By Sebastian Macke # Via Jia Liu * jliu/or32: target-openrisc: Removes a non-conforming behavior for the first page of the memory target-openrisc: Correct handling of page faults. Message-id: 1380789702-18935-1-git-send-email-proljc@gmail.com Signed-off-by: Anthony Liguori <aliguori@amazon.com>
| * | target-openrisc: Removes a non-conforming behavior for the first page of the ↵Sebastian Macke2013-10-031-7/+0Star
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | memory Where *software* leaves 0x0000 - 0x2000 unmapped, the hardware should still allow for this area to be mapped. Signed-off-by: Sebastian Macke <sebastian@macke.de> Signed-off-by: Stefan Kristiansson <stefan.kristiansson@saunalahti.fi> Reviewed-by: Jia Liu <proljc@gmail.com>
| * | target-openrisc: Correct handling of page faults.Sebastian Macke2013-10-031-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | The result of (rw & 0) is always zero and therefore a logic false. The whole comparison will therefore never be executed, it is a obvious bug, we should use !(rw & 1) here. Signed-off-by: Sebastian Macke <sebastian@macke.de> Reviewed-by: Jia Liu <proljc@gmail.com>
* | | Merge remote-tracking branch 'awilliam/tags/vfio-pci-for-qemu-20131010.0' ↵Anthony Liguori2013-10-141-109/+518
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | into staging vfio-pci updates include: - Forgotten MSI affinity patch posted several months ago - Lazy option ROM loading to delay load until after device/bus resets - Error reporting cleanups - PCI hot reset support introduced with Linux v3.12 development kernels - Debug build fix for int128 The lazy ROM loading and hot reset should help VGA assignment as we can now do a bus reset when there are multiple devices on the bus, ex. multi-function graphics and audio cards. # gpg: Signature made Thu 10 Oct 2013 11:26:39 AM PDT using RSA key ID 3BB08B22 # gpg: Can't check signature: public key not found # By Alex Williamson (7) and Alexey Kardashevskiy (1) # Via Alex Williamson * awilliam/tags/vfio-pci-for-qemu-20131010.0: vfio-pci: Fix endian issues in vfio_pci_size_rom() vfio-pci: Add dummy PCI ROM write accessor vfio: Fix debug output for int128 values vfio-pci: Implement PCI hot reset vfio-pci: Cleanup error_reports vfio-pci: Lazy PCI option ROM loading vfio-pci: Test device reset capabilities vfio-pci: Add support for MSI affinity Message-id: 20131010184122.31667.28382.stgit@bling.home Signed-off-by: Anthony Liguori <aliguori@amazon.com>
| * | | vfio-pci: Fix endian issues in vfio_pci_size_rom()Alex Williamson2013-10-041-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | VFIO is always little endian so do byte swapping of our mask on the way in and byte swapping of the size on the way out. Signed-off-by: Alex Williamson <alex.williamson@redhat.com> Reported-by: Alexey Kardashevskiy <aik@ozlabs.ru>
| * | | vfio-pci: Add dummy PCI ROM write accessorAlex Williamson2013-10-041-0/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Just to be sure we don't jump off any NULL pointer cliffs. Signed-off-by: Alex Williamson <alex.williamson@redhat.com> Reported-by: Paolo Bonzini <pbonzini@redhat.com>
| * | | vfio: Fix debug output for int128 valuesAlexey Kardashevskiy2013-10-031-2/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Memory regions can easily be 2^64 byte long and therefore overflow for just a bit but that is enough for int128_get64() to assert. This takes care of debug printing of huge section sizes. Signed-off-by: Alexey Kardashevskiy <aik@ozlabs.ru> Signed-off-by: Alex Williamson <alex.williamson@redhat.com>
| * | | vfio-pci: Implement PCI hot resetAlex Williamson2013-10-021-38/+300
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Now that VFIO has a PCI hot reset interface, take advantage of it. There are two modes that we need to consider. The first is when only one device within the set of devices affected is actually assigned to the guest. In this case the other devices are are just held by VFIO for isolation and we can pretend they're not there, doing an entire bus reset whenever the device reset callback is triggered. Supporting this case separately allows us to do the best reset we can do of the device even if the device is hotplugged. The second mode is when multiple affected devices are all exposed to the guest. In this case we can only do a hot reset when the entire system is being reset. However, this also allows us to track which individual devices are affected by a reset and only do them once. We split our reset function into pre- and post-reset helper functions prioritize the types of device resets available to us, and create separate _one vs _multi reset interfaces to handle the distinct cases above. Signed-off-by: Alex Williamson <alex.williamson@redhat.com>
| * | | vfio-pci: Cleanup error_reportsAlex Williamson2013-10-021-12/+12
| | | | | | | | | | | | | | | | | | | | | | | | Remove carriage returns and tweak formatting for error_reports. Signed-off-by: Alex Williamson <alex.williamson@redhat.com>
| * | | vfio-pci: Lazy PCI option ROM loadingAlex Williamson2013-10-021-62/+122
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | During vfio-pci initfn, the device is not always in a state where the option ROM can be read. In the case of graphics cards, there's often no per function reset, which means we have host driver state affecting whether the option ROM is usable. Ideally we want to move reading the option ROM past any co-assigned device resets to the point where the guest first tries to read the ROM itself. To accomplish this, we switch the memory region for the option rom to an I/O region rather than a memory mapped region. This has the side benefit that we don't waste KVM memory slots for a BAR where we don't care about performance. This also allows us to delay loading the ROM from the device until the first read by the guest. We then use the PCI config space size of the ROM BAR when setting up the BAR through QEMU PCI. Another benefit of this approach is that previously when a user set the ROM to a file using the romfile= option, we still probed VFIO for the parameters of the ROM, which can result in dmesg errors about an invalid ROM. We now only probe VFIO to get the ROM contents if the guest actually tries to read the ROM. Signed-off-by: Alex Williamson <alex.williamson@redhat.com>
| * | | vfio-pci: Test device reset capabilitiesAlex Williamson2013-10-021-0/+46
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Not all resets are created equal. PM reset is not very reliable, especially for GPUs, so we might want to opt for a bus reset if a standard reset will only do a D3hot->D0 transition. We can also use this to tell if the standard reset will do a bus reset (if neither has_pm_reset or has_flr is probed, but the device still supports reset). Signed-off-by: Alex Williamson <alex.williamson@redhat.com>
| * | | vfio-pci: Add support for MSI affinityAlex Williamson2013-10-021-7/+40
| |/ / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When MSI is accelerated through KVM the vectors are only programmed when the guest first enables MSI support.  Subsequent writes to the vector address or data fields are ignored.  Unfortunately that means we're ignore updates done to adjust SMP affinity of the vectors. MSI SMP affinity already works in non-KVM mode because the address and data fields are read from their backing store on each interrupt. This patch stores the MSIMessage programmed into KVM so that we can determine when changes are made and update the routes. Signed-off-by: Alex Williamson <alex.williamson@redhat.com>
* | / exec: Fix prototype of phys_mem_set_alloc and related functionsStefan Weil2013-10-143-5/+5
| |/ |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | phys_mem_alloc and its assigned values qemu_anon_ram_alloc and legacy_s390_alloc must have identical argument lists. legacy_s390_alloc uses the size parameter to call mmap, so size_t is good enough for all of them. This patch fixes compiler errors on i686 Linux hosts: CC alpha-softmmu/exec.o exec.c:752:51: error: initialization from incompatible pointer type [-Werror] exec.c: In function 'qemu_ram_alloc_from_ptr': exec.c:1139:32: error: comparison of distinct pointer types lacks a cast [-Werror] exec.c: In function 'qemu_ram_remap': exec.c:1283:21: error: comparison of distinct pointer types lacks a cast [-Werror] Signed-off-by: Stefan Weil <sw@weilnetz.de> Reviewed-by: Markus Armbruster <armbru@redhat.com> Message-id: 1380481005-32399-1-git-send-email-sw@weilnetz.de Signed-off-by: Anthony Liguori <aliguori@amazon.com>
* | Merge remote-tracking branch 'mdroth/qga-pull-2013-10-10' into stagingAnthony Liguori2013-10-116-94/+69Star
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | # By Mark Wu (2) and Tomoki Sekiyama (1) # Via Michael Roth * mdroth/qga-pull-2013-10-10: qemu-ga: Extend 'guest-info' command to expose flag 'success-response' qemu-ga: Add interface to traverse the qmp command list by QmpCommand qemu-ga: execute fsfreeze-freeze in reverse order of mounts Message-id: 1381435782-25524-1-git-send-email-mdroth@linux.vnet.ibm.com Signed-off-by: Anthony Liguori <aliguori@amazon.com>
| * | qemu-ga: Extend 'guest-info' command to expose flag 'success-response'Mark Wu2013-10-104-1/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Now we have several qemu-ga commands not returning response on success. It has been documented in qga/qapi-schema.json already. This patch exposes the 'success-response' flag by extending 'guest-info' command. With this change, the clients can handle the command response more flexibly. Signed-off-by: Mark Wu <wudxw@linux.vnet.ibm.com> Reviewed-by: Eric Blake <eblake@redhat.com> Reviewed-by: Michael Roth <mdroth@linux.vnet.ibm.com> *fixed up commit subject Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>
| * | qemu-ga: Add interface to traverse the qmp command list by QmpCommandMark Wu2013-10-104-92/+57Star
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In the original code, qmp_get_command_list is used to construct a list of all commands' name. To get the information of all qga commands, it traverses the name list and search the command info with its name. So it can cause O(n^2) in the number of commands. This patch adds an interface to traverse the qmp command list by QmpCommand to replace qmp_get_command_list. It can decrease the complexity from O(n^2) to O(n). Signed-off-by: Mark Wu <wudxw@linux.vnet.ibm.com> Reviewed-by: Eric Blake <eblake@redhat.com> *fix up commit subject Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>
| * | qemu-ga: execute fsfreeze-freeze in reverse order of mountsTomoki Sekiyama2013-10-101-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Currently, fsfreeze-freeze may cause deadlock if a guest has loopback mounts of image files in its disk; e.g.: # mount | grep ^/ /dev/vda1 / type ext4 (rw,noatime,seclabel,data=ordered) /tmp/disk.img on /mnt type ext4 (rw,relatime,seclabel) To avoid the deadlock, this freezes filesystems in reverse order of mounts. Signed-off-by: Tomoki Sekiyama <tomoki.sekiyama@hds.com> Reviewed-by: Eric Blake <eblake@redhat.com> *fix up commit msg Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>
* | | Merge remote-tracking branch 'rth/tcg-pull' into stagingAnthony Liguori2013-10-1158-2629/+992Star
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | # By Richard Henderson # Via Richard Henderson * rth/tcg-pull: exec: Add both big- and little-endian memory helpers tcg: Add qemu_ld_st_i32/64 tcg: Add TCGMemOp configure: Remove CONFIG_QEMU_LDST_OPTIMIZATION tcg: Add tcg-be-ldst.h tcg: Add tcg-be-null.h exec: Delete is_tcg_gen_code and GETRA_EXT tcg-aarch64: Update to helper_ret_*_mmu routines tcg: Merge tcg_register_helper into tcg_context_init tcg: Add tcg-runtime.c helpers to all_helpers tcg: Put target helper data into an array. tcg: Remove stray semi-colons from target-*/helper.h tcg: Move helper registration into tcg_context_init target-m68k: Rename helpers.h to helper.h tcg: Use a GHashTable for tcg_find_helper tcg: Delete tcg_helper_get_name declaration tcg-hppa: Remove tcg backend Message-id: 1381440525-6666-1-git-send-email-rth@twiddle.net Signed-off-by: Anthony Liguori <aliguori@amazon.com>
| * | | exec: Add both big- and little-endian memory helpersRichard Henderson2013-10-102-51/+304
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Step three in the transition: helpers not tied to the target "default" endianness. To be used when the guest uses a memory operation with non-default endianness. Signed-off-by: Richard Henderson <rth@twiddle.net>
| * | | tcg: Add qemu_ld_st_i32/64Richard Henderson2013-10-1014-239/+368
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Step two in the transition, adding the new ldst opcodes. Keep the old opcodes around until all backends support the new opcodes. Signed-off-by: Richard Henderson <rth@twiddle.net>
| * | | tcg: Add TCGMemOpRichard Henderson2013-10-101-0/+54
| | | | | | | | | | | | | | | | Signed-off-by: Richard Henderson <rth@twiddle.net>
| * | | configure: Remove CONFIG_QEMU_LDST_OPTIMIZATIONRichard Henderson2013-10-101-8/+0Star
| | | | | | | | | | | | | | | | | | | | | | | | No longer used. Signed-off-by: Richard Henderson <rth@twiddle.net>
| * | | tcg: Add tcg-be-ldst.hRichard Henderson2013-10-108-158/+112Star
| | | | | | | | | | | | | | | | | | | | | | | | Move TCGLabelQemuLdst and related stuff out of tcg.h. Signed-off-by: Richard Henderson <rth@twiddle.net>
| * | | tcg: Add tcg-be-null.hRichard Henderson2013-10-106-0/+53
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is a no-op backend data implementation, for those targets that are not currently using the load/store optimization path. This is prepatory to always requiring these functions in all backends. Signed-off-by: Richard Henderson <rth@twiddle.net>
| * | | exec: Delete is_tcg_gen_code and GETRA_EXTRichard Henderson2013-10-103-26/+2Star
| | | | | | | | | | | | | | | | | | | | | | | | All implementations now boil down to GETRA. Signed-off-by: Richard Henderson <rth@twiddle.net>
| * | | tcg-aarch64: Update to helper_ret_*_mmu routinesRichard Henderson2013-10-102-30/+16Star
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | A minimal update to use the new helpers with the return address argument. Tested-by: Claudio Fontana <claudio.fontana@linaro.org> Reviewed-by: Claudio Fontana <claudio.fontana@linaro.org> Signed-off-by: Richard Henderson <rth@twiddle.net>
| * | | tcg: Merge tcg_register_helper into tcg_context_initRichard Henderson2013-10-102-16/+6Star
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Eliminates the repeated checks for having created the s->helpers hash table. Signed-off-by: Richard Henderson <rth@twiddle.net>
| * | | tcg: Add tcg-runtime.c helpers to all_helpersRichard Henderson2013-10-101-0/+16
| | | | | | | | | | | | | | | | | | | | | | | | | | | | For the few targets that actually use these, we'd not report them symbolicly in the tcg opcode logs. Signed-off-by: Richard Henderson <rth@twiddle.net>
| * | | tcg: Put target helper data into an array.Richard Henderson2013-10-102-5/+15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | One call inside of a loop to tcg_register_helper instead of hundreds of sequential calls. Presumably more icache and branch prediction friendly; resulting binary size mostly unchanged on x86_64, as we're trading 32-bit rip-relative references in .text for full 64-bit pointers in .rodata. Signed-off-by: Richard Henderson <rth@twiddle.net>
| * | | tcg: Remove stray semi-colons from target-*/helper.hRichard Henderson2013-10-106-29/+29
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | During GEN_HELPER=1, these are actually stray top-level semi-colons which are technically invalid ISO C, but GCC accepts as an extension. If we added enough __extension__ markers that we could dare use -Wpedantic, we'd see warning: ISO C does not allow extra ‘;’ outside of a function This will become a hard error in the next patch, wherein those ; will appear in the middle of a data structure. Reviewed-by: Peter Maydell <peter.maydell@linaro.org> Signed-off-by: Richard Henderson <rth@twiddle.net>