summaryrefslogtreecommitdiffstats
path: root/target-alpha
Commit message (Collapse)AuthorAgeFilesLines
* tcg: Change translator-side labels to a pointerRichard Henderson2015-03-131-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | This is improved type checking for the translators -- it's no longer possible to accidentally swap arguments to the branch functions. Note that the code generating backends still manipulate labels as int. With notable exceptions, the scope of the change is just a few lines for each target, so it's not worth building extra machinery to do this change in per-target increments. Cc: Peter Maydell <peter.maydell@linaro.org> Cc: Edgar E. Iglesias <edgar.iglesias@gmail.com> Cc: Michael Walle <michael@walle.cc> Cc: Leon Alrae <leon.alrae@imgtec.com> Cc: Anthony Green <green@moxielogic.com> Cc: Jia Liu <proljc@gmail.com> Cc: Alexander Graf <agraf@suse.de> Cc: Aurelien Jarno <aurelien@aurel32.net> Cc: Blue Swirl <blauwirbel@gmail.com> Cc: Guan Xuetao <gxt@mprc.pku.edu.cn> Cc: Paolo Bonzini <pbonzini@redhat.com> Cc: Max Filippov <jcmvbkbc@gmail.com> Reviewed-by: Bastian Koppelmann <kbastian@mail.uni-paderborn.de> Signed-off-by: Richard Henderson <rth@twiddle.net>
* cpu: Make cpu_init() return QOM CPUState objectEduardo Habkost2015-03-101-8/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Instead of making cpu_init() return CPUArchState, return CPUState. Changes were made using the Coccinelle semantic patch below. @@ typedef CPUState; identifier e; expression args; type CPUArchState; @@ - e = + cpu = cpu_init(args); - if (!e) { + if (!cpu) { ... } - cpu = ENV_GET_CPU(env); + e = cpu->env_ptr; @@ identifier new_env, new_cpu, env, cpu; type CPUArchState; expression args; @@ -{ - CPUState *cpu = ENV_GET_CPU(env); - CPUArchState *new_env = cpu_init(args); - CPUState *new_cpu = ENV_GET_CPU(new_env); +{ + CPUState *cpu = ENV_GET_CPU(env); + CPUState *new_cpu = cpu_init(args); + CPUArchState *new_env = new_cpu->env_ptr; ... } @@ identifier c, cpu_init_func, cpu_model; type StateType, CPUType; @@ -static inline StateType* cpu_init(const char *cpu_model) -{ - CPUType *c = cpu_init_func(cpu_model); ( - if (c == NULL) { - return NULL; - } - return &c->env; | - if (c) { - return &c->env; - } - return NULL; ) -} +#define cpu_init(cpu_model) CPU(cpu_init_func(cpu_model)) @@ identifier cpu_init_func; identifier model; @@ -#define cpu_init(model) (&cpu_init_func(model)->env) +#define cpu_init(model) CPU(cpu_init_func(model)) Signed-off-by: Eduardo Habkost <ehabkost@redhat.com> Cc: Blue Swirl <blauwirbel@gmail.com> Cc: Guan Xuetao <gxt@mprc.pku.edu.cn> Cc: Riku Voipio <riku.voipio@iki.fi> Cc: Richard Henderson <rth@twiddle.net> Cc: Peter Maydell <peter.maydell@linaro.org> Cc: "Edgar E. Iglesias" <edgar.iglesias@gmail.com> Cc: Paolo Bonzini <pbonzini@redhat.com> Cc: Michael Walle <michael@walle.cc> Cc: Aurelien Jarno <aurelien@aurel32.net> Cc: Leon Alrae <leon.alrae@imgtec.com> Cc: Anthony Green <green@moxielogic.com> Cc: Jia Liu <proljc@gmail.com> Cc: Alexander Graf <agraf@suse.de> Cc: Bastian Koppelmann <kbastian@mail.uni-paderborn.de> Cc: Max Filippov <jcmvbkbc@gmail.com> [AF: Fixed up cpu_copy() manually] Signed-off-by: Andreas Färber <afaerber@suse.de>
* tcg: Introduce tcg_op_buf_count and tcg_op_buf_fullRichard Henderson2015-02-121-7/+7
| | | | | | | | The method by which we count the number of ops emitted is going to change. Abstract that away into some inlines. Reviewed-by: Bastian Koppelmann <kbastian@mail.uni-paderborn.de> Signed-off-by: Richard Henderson <rth@twiddle.net>
* tcg: Move emit of INDEX_op_end into gen_tb_endRichard Henderson2015-02-121-1/+1
| | | | | Reviewed-by: Bastian Koppelmann <kbastian@mail.uni-paderborn.de> Signed-off-by: Richard Henderson <rth@twiddle.net>
* exec.c: Drop TARGET_HAS_ICE define and checksPeter Maydell2015-01-201-2/+0
| | | | | | | | | | | | | | The TARGET_HAS_ICE #define is intended to indicate whether a target-* guest CPU implementation supports the breakpoint handling. However, all our guest CPUs have that support (the only two which do not define TARGET_HAS_ICE are unicore32 and openrisc, and in both those cases the bp support is present and the lack of the #define is just a bug). So remove the #define entirely: all new guest CPU support should include breakpoint handling as part of the basic implementation. Signed-off-by: Peter Maydell <peter.maydell@linaro.org> Reviewed-by: Richard Henderson <rth@twiddle.net> Message-id: 1420484960-32365-1-git-send-email-peter.maydell@linaro.org
* gen-icount: check cflags instead of use_icount globalPaolo Bonzini2015-01-031-1/+1
| | | | | | Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> Signed-off-by: Pavel Dovgalyuk <pavel.dovgaluk@ispras.ru> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
* translate: check cflags instead of use_icount globalPaolo Bonzini2015-01-031-4/+4
| | | | | | Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> Signed-off-by: Pavel Dovgalyuk <pavel.dovgaluk@ispras.ru> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
* target-alpha: Use cpu_exec_interrupt qom hookRichard Henderson2014-09-253-0/+46
| | | | | | Signed-off-by: Richard Henderson <rth@twiddle.net> Message-id: 1410626734-3804-12-git-send-email-rth@twiddle.net Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
* trace: [tcg] Include TCG-tracing header on all targetsLluís Vilanova2014-08-121-0/+3
| | | | | Signed-off-by: Lluís Vilanova <vilanova@ac.upc.edu> Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
* softmmu: introduce cpu_ldst.hPaolo Bonzini2014-06-052-3/+2
| | | | | | | | | | This will collect all load and store helpers soon. For now it is just a replacement for softmmu_exec.h, which this patch stops including directly, but we also include it where this will be necessary in order to simplify the next patch. Reviewed-by: Richard Henderson <rth@twiddle.net> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
* softmmu: commonize helper definitionsPaolo Bonzini2014-06-051-14/+0
| | | | | | | | | They do not need to be in op_helper.c. Because cputlb.c now includes softmmu_template.h twice for each size, io_readX must be elided the second time through. Reviewed-by: Richard Henderson <rth@twiddle.net> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
* softmmu: move ALIGNED_ONLY to cpu.hPaolo Bonzini2014-06-052-1/+1
| | | | | | | Prepare for moving softmmu_header.h inclusion out of .c files Reviewed-by: Richard Henderson <rth@twiddle.net> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
* softmmu: make do_unaligned_access a method of CPUPaolo Bonzini2014-06-053-4/+7
| | | | | | | | | We will reference it from more files in the next patch. To avoid ruining the small steps we're making towards multi-target, make it a method of CPU rather than just a global. Reviewed-by: Andreas Färber <afaerber@suse.de> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
* tcg: Invert the inclusion of helper.hRichard Henderson2014-05-287-12/+7
| | | | | | | | | | Rather than include helper.h with N values of GEN_HELPER, include a secondary file that sets up the macros to include helper.h. This minimizes the files that must be rebuilt when changing the macros for file N. Reviewed-by: Alex Bennée <alex.bennee@linaro.org> Signed-off-by: Richard Henderson <rth@twiddle.net>
* savevm: Remove all the unneeded version_minimum_id_old (rest)Juan Quintela2014-05-141-2/+0
| | | | | | | | | | | | | | | | | | | | After previous Peter patch, they are redundant. This way we don't assign them except when needed. Once there, there were lots of case where the ".fields" indentation was wrong: .fields = (VMStateField []) { and .fields = (VMStateField []) { Change all the combinations to: .fields = (VMStateField[]){ The biggest problem (appart from aesthetics) was that checkpatch complained when we copy&pasted the code from one place to another. Signed-off-by: Juan Quintela <quintela@redhat.com> Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
* target-alpha: Fix RDUSPRichard Henderson2014-05-021-1/+1
| | | | | | Commit 06ef8604e92964cbf30084b7d31091aa7cbbb62f contained a typo. Signed-off-by: Richard Henderson <rth@twiddle.net>
* target-alpha: Remove cpu_unique, cpu_sysval, cpu_uspRichard Henderson2014-04-171-19/+18
| | | | | | | | | | | | | Technically, these variables could have been referenced both via offsets from env and as TCG registers, which would be illegal. Of course, that could only be done from PALcode, and ours doesn't do that. But honestly, these are used infrequently enough that they don't really need to be TCG registers. We wind up with exactly the same code if we follow the letter of the law and issue explicit ld/st. Signed-off-by: Richard Henderson <rth@twiddle.net>
* target-alpha: Tidy alpha_translate_initRichard Henderson2014-04-171-35/+43
| | | | Signed-off-by: Richard Henderson <rth@twiddle.net>
* target-alpha: Don't issue goto_tb under singlestepRichard Henderson2014-04-171-1/+2
| | | | Signed-off-by: Richard Henderson <rth@twiddle.net>
* target-alpha: Use non-local temps for zero/sinkRichard Henderson2014-04-171-2/+2
| | | | | | These values are no longer live across branches. Signed-off-by: Richard Henderson <rth@twiddle.net>
* target-alpha: Use extract to get insn fieldsRichard Henderson2014-04-171-27/+22
| | | | Signed-off-by: Richard Henderson <rth@twiddle.net>
* target-alpha: Convert mfpr/mtpr to source/sinkRichard Henderson2014-04-171-33/+19
| | | | Signed-off-by: Richard Henderson <rth@twiddle.net>
* target-alpha: Convert gen_cpys et al to source/sinkRichard Henderson2014-04-171-76/+24
| | | | Signed-off-by: Richard Henderson <rth@twiddle.net>
* target-alpha: Convert gen_fcvtlq/ql to source/sinkRichard Henderson2014-04-173-50/+36
| | | | Signed-off-by: Richard Henderson <rth@twiddle.net>
* target-alpha: Convert gen_fcmov to source/sinkRichard Henderson2014-04-171-30/+14
| | | | Signed-off-by: Richard Henderson <rth@twiddle.net>
* target-alpha: Convert gen_bcond to source/sinkRichard Henderson2014-04-171-18/+6
| | | | Signed-off-by: Richard Henderson <rth@twiddle.net>
* target-alpha: Convert most ieee insns to source/sinkRichard Henderson2014-04-171-52/+17
| | | | | | | This one fixes a bug, previously noted as supressing exceptions in the (unlikely) case the destination register was $f31. Signed-off-by: Richard Henderson <rth@twiddle.net>
* target-alpha: Convert gen_ieee_input to source/sinkRichard Henderson2014-04-171-19/+13
| | | | Signed-off-by: Richard Henderson <rth@twiddle.net>
* target-alpha: Convert MVIOP2 to source/sinkRichard Henderson2014-04-171-19/+4
| | | | Signed-off-by: Richard Henderson <rth@twiddle.net>
* target-alpha: Convert ARITH3 to source/sinkRichard Henderson2014-04-171-69/+39
| | | | Signed-off-by: Richard Henderson <rth@twiddle.net>
* target-alpha: Convert FARITH3 to source/sinkRichard Henderson2014-04-171-53/+12
| | | | Signed-off-by: Richard Henderson <rth@twiddle.net>
* target-alpha: Convert FARITH2 to source/sinkRichard Henderson2014-04-171-32/+11
| | | | Signed-off-by: Richard Henderson <rth@twiddle.net>
* target-alpha: Convert gen_zap/not to source/sinkRichard Henderson2014-04-171-30/+11
| | | | Signed-off-by: Richard Henderson <rth@twiddle.net>
* target-alpha: Convert gen_ins_h/l to source/sinkRichard Henderson2014-04-171-61/+50
| | | | Signed-off-by: Richard Henderson <rth@twiddle.net>
* target-alpha: Convert gen_ext_h/l to source/sinkRichard Henderson2014-04-171-40/+26
| | | | Signed-off-by: Richard Henderson <rth@twiddle.net>
* target-alpha: Convert gen_msk_h/l to source/sinkRichard Henderson2014-04-171-28/+19
| | | | Signed-off-by: Richard Henderson <rth@twiddle.net>
* target-alpha: Convert gen_cmov to source/sinkRichard Henderson2014-04-171-44/+22
| | | | Signed-off-by: Richard Henderson <rth@twiddle.net>
* target-alpha: Convert ARITH3_EX to source/sinkRichard Henderson2014-04-171-43/+6
| | | | Signed-off-by: Richard Henderson <rth@twiddle.net>
* target-alpha: Convert gen_cmp to source/sinkRichard Henderson2014-04-171-35/+5
| | | | Signed-off-by: Richard Henderson <rth@twiddle.net>
* target-alpha: Convert gen_store_conditional to source/sinkRichard Henderson2014-04-171-5/+1
| | | | Signed-off-by: Richard Henderson <rth@twiddle.net>
* target-alpha: Convert gen_load/store_mem to source/sinkRichard Henderson2014-04-171-38/+29
| | | | Signed-off-by: Richard Henderson <rth@twiddle.net>
* target-alpha: Convert opcode 0x1F to source/sinkRichard Henderson2014-04-171-20/+10
| | | | Signed-off-by: Richard Henderson <rth@twiddle.net>
* target-alpha: Convert opcode 0x1E to source/sinkRichard Henderson2014-04-171-2/+4
| | | | Signed-off-by: Richard Henderson <rth@twiddle.net>
* target-alpha: Convert opcode 0x1C to source/sinkRichard Henderson2014-04-171-54/+19
| | | | Signed-off-by: Richard Henderson <rth@twiddle.net>
* target-alpha: Convert opcode 0x1B to source/sinkRichard Henderson2014-04-171-19/+13
| | | | Signed-off-by: Richard Henderson <rth@twiddle.net>
* target-alpha: Convert opcode 0x1A to source/sinkRichard Henderson2014-04-171-5/+4
| | | | Signed-off-by: Richard Henderson <rth@twiddle.net>
* target-alpha: Convert opcode 0x18 to source/sinkRichard Henderson2014-04-171-9/+9
| | | | Signed-off-by: Richard Henderson <rth@twiddle.net>
* target-alpha: Convert opcode 0x17 to source/sinkRichard Henderson2014-04-171-21/+20
| | | | Signed-off-by: Richard Henderson <rth@twiddle.net>
* target-alpha: Convert opcode 0x14 to source/sinkRichard Henderson2014-04-171-26/+18
| | | | Signed-off-by: Richard Henderson <rth@twiddle.net>
* target-alpha: Convert opcode 0x13 to source/sinkRichard Henderson2014-04-171-39/+10
| | | | Signed-off-by: Richard Henderson <rth@twiddle.net>
OpenPOWER on IntegriCloud