From: Aurelien Jarno <aurelien@aurel32.net>
To: Richard Henderson <rth@twiddle.net>
Cc: qemu-devel@nongnu.org, Alexander Graf <agraf@suse.de>
Subject: Re: [Qemu-devel] [PATCH 007/126] target-s390: Use TCG registers for FPR
Date: Mon, 10 Sep 2012 16:34:22 +0200 [thread overview]
Message-ID: <20120910143422.GZ6791@ohm.aurel32.net> (raw)
In-Reply-To: <1347224784-19472-8-git-send-email-rth@twiddle.net>
On Sun, Sep 09, 2012 at 02:04:25PM -0700, Richard Henderson wrote:
> At the same time, tidy other usages of tcg_gen_deposit_i64.
> In some cases we can "type cast" rather than extend, and in
> others we can allow tcg_gen_deposit_i64 itself to optimize
> the HOST_LONG_BITS==32 case.
>
> Signed-off-by: Richard Henderson <rth@twiddle.net>
> ---
> target-s390x/translate.c | 68 ++++++++++++++++++++++++++++--------------------
> 1 file changed, 40 insertions(+), 28 deletions(-)
>
> diff --git a/target-s390x/translate.c b/target-s390x/translate.c
> index 3080cef..bf35a65 100644
> --- a/target-s390x/translate.c
> +++ b/target-s390x/translate.c
> @@ -89,7 +89,7 @@ void cpu_dump_state(CPUS390XState *env, FILE *f, fprintf_function cpu_fprintf,
> }
>
> for (i = 0; i < 16; i++) {
> - cpu_fprintf(f, "F%02d=%016" PRIx64, i, *(uint64_t *)&env->fregs[i]);
> + cpu_fprintf(f, "F%02d=%016" PRIx64, i, env->fregs[i].ll);
> if ((i % 4) == 3) {
> cpu_fprintf(f, "\n");
> } else {
> @@ -136,21 +136,22 @@ static TCGv_i64 cc_src;
> static TCGv_i64 cc_dst;
> static TCGv_i64 cc_vr;
>
> -static char cpu_reg_names[10*3 + 6*4];
> +static char cpu_reg_names[32][4];
> static TCGv_i64 regs[16];
> +static TCGv_i64 fregs[16];
>
> static uint8_t gen_opc_cc_op[OPC_BUF_SIZE];
>
> void s390x_translate_init(void)
> {
> int i;
> - size_t cpu_reg_names_size = sizeof(cpu_reg_names);
> - char *p;
>
> cpu_env = tcg_global_reg_new_ptr(TCG_AREG0, "env");
> - psw_addr = tcg_global_mem_new_i64(TCG_AREG0, offsetof(CPUS390XState, psw.addr),
> + psw_addr = tcg_global_mem_new_i64(TCG_AREG0,
> + offsetof(CPUS390XState, psw.addr),
> "psw_addr");
> - psw_mask = tcg_global_mem_new_i64(TCG_AREG0, offsetof(CPUS390XState, psw.mask),
> + psw_mask = tcg_global_mem_new_i64(TCG_AREG0,
> + offsetof(CPUS390XState, psw.mask),
> "psw_mask");
>
> cc_op = tcg_global_mem_new_i32(TCG_AREG0, offsetof(CPUS390XState, cc_op),
> @@ -162,13 +163,18 @@ void s390x_translate_init(void)
> cc_vr = tcg_global_mem_new_i64(TCG_AREG0, offsetof(CPUS390XState, cc_vr),
> "cc_vr");
>
> - p = cpu_reg_names;
> for (i = 0; i < 16; i++) {
> - snprintf(p, cpu_reg_names_size, "r%d", i);
> + snprintf(cpu_reg_names[i], sizeof(cpu_reg_names[0]), "r%d", i);
> regs[i] = tcg_global_mem_new(TCG_AREG0,
> - offsetof(CPUS390XState, regs[i]), p);
> - p += (i < 10) ? 3 : 4;
> - cpu_reg_names_size -= (i < 10) ? 3 : 4;
> + offsetof(CPUS390XState, regs[i]),
> + cpu_reg_names[i]);
> + }
> +
> + for (i = 0; i < 16; i++) {
> + snprintf(cpu_reg_names[i + 16], sizeof(cpu_reg_names[0]), "f%d", i);
> + fregs[i] = tcg_global_mem_new(TCG_AREG0,
> + offsetof(CPUS390XState, fregs[i].d),
> + cpu_reg_names[i + 16]);
> }
> }
>
> @@ -182,14 +188,18 @@ static inline TCGv_i64 load_reg(int reg)
> static inline TCGv_i64 load_freg(int reg)
> {
> TCGv_i64 r = tcg_temp_new_i64();
> - tcg_gen_ld_i64(r, cpu_env, offsetof(CPUS390XState, fregs[reg].d));
> + tcg_gen_mov_i64(r, fregs[reg]);
> return r;
> }
>
> static inline TCGv_i32 load_freg32(int reg)
> {
> TCGv_i32 r = tcg_temp_new_i32();
> - tcg_gen_ld_i32(r, cpu_env, offsetof(CPUS390XState, fregs[reg].l.upper));
> +#if HOST_LONG_BITS == 32
> + tcg_gen_mov_i32(r, TCGV_HIGH(fregs[reg]));
> +#else
> + tcg_gen_shri_i64(MAKE_TCGV_I64(GET_TCGV_I32(r)), fregs[reg], 32);
> +#endif
> return r;
> }
>
> @@ -214,39 +224,35 @@ static inline void store_reg(int reg, TCGv_i64 v)
>
> static inline void store_freg(int reg, TCGv_i64 v)
> {
> - tcg_gen_st_i64(v, cpu_env, offsetof(CPUS390XState, fregs[reg].d));
> + tcg_gen_mov_i64(fregs[reg], v);
> }
>
> static inline void store_reg32(int reg, TCGv_i32 v)
> {
> + /* 32 bit register writes keep the upper half */
> #if HOST_LONG_BITS == 32
> tcg_gen_mov_i32(TCGV_LOW(regs[reg]), v);
> #else
> - TCGv_i64 tmp = tcg_temp_new_i64();
> - tcg_gen_extu_i32_i64(tmp, v);
> - /* 32 bit register writes keep the upper half */
> - tcg_gen_deposit_i64(regs[reg], regs[reg], tmp, 0, 32);
> - tcg_temp_free_i64(tmp);
> + tcg_gen_deposit_i64(regs[reg], regs[reg],
> + MAKE_TCGV_I64(GET_TCGV_I32(v)), 0, 32);
> #endif
> }
>
> static inline void store_reg32_i64(int reg, TCGv_i64 v)
> {
> /* 32 bit register writes keep the upper half */
> -#if HOST_LONG_BITS == 32
> - tcg_gen_mov_i32(TCGV_LOW(regs[reg]), TCGV_LOW(v));
> -#else
> tcg_gen_deposit_i64(regs[reg], regs[reg], v, 0, 32);
> -#endif
> }
>
> static inline void store_reg16(int reg, TCGv_i32 v)
> {
> - TCGv_i64 tmp = tcg_temp_new_i64();
> - tcg_gen_extu_i32_i64(tmp, v);
> /* 16 bit register writes keep the upper bytes */
> - tcg_gen_deposit_i64(regs[reg], regs[reg], tmp, 0, 16);
> - tcg_temp_free_i64(tmp);
> +#if HOST_LONG_BITS == 32
> + tcg_gen_deposit_i32(TCGV_LOW(regs[reg]), TCGV_LOW(regs[reg]), v, 0, 16);
> +#else
> + tcg_gen_deposit_i64(regs[reg], regs[reg],
> + MAKE_TCGV_I64(GET_TCGV_I32(v)), 0, 16);
> +#endif
> }
>
> static inline void store_reg8(int reg, TCGv_i64 v)
> @@ -257,7 +263,13 @@ static inline void store_reg8(int reg, TCGv_i64 v)
>
> static inline void store_freg32(int reg, TCGv_i32 v)
> {
> - tcg_gen_st_i32(v, cpu_env, offsetof(CPUS390XState, fregs[reg].l.upper));
> + /* 32 bit register writes keep the lower half */
> +#if HOST_LONG_BITS == 32
> + tcg_gen_mov_i32(TCGV_HIGH(fregs[reg]), v);
> +#else
> + tcg_gen_deposit_i64(fregs[reg], fregs[reg],
> + MAKE_TCGV_I64(GET_TCGV_I32(v)), 32, 32);
> +#endif
> }
>
I am not sure we want to start mixing different layers, and especially
having some assumptions about the host inside the target. That's why I
don't think we should have things like HOST_LONG_BITS in target-*/ and
even less MAKE_TCGV_I64() and GET_TCGV_I32().
Your code take the assumption that it's possible to do moves between 32
and 64-bit registers, which might not be guaranteed on some hosts. It's
fine taking such assumptions (as long as there is also a comment) in the
TCG code.
To handle conversion between 32- and 64-bit registers we have functions
like:
- concat_i32_i64
- extu_i32_i64
- ext_i32_i64
- trunc_i64_i32
These functions work on both 32- and 64-bit hosts, accessing directly
the high and low part on 32-bit hosts.
If it is not possible to implement your FPR code using these functions,
we might want to add some more, but I really thing it's a bad idea to
have this code in the targets.
--
Aurelien Jarno GPG: 1024D/F1BCDB73
aurelien@aurel32.net http://www.aurel32.net
next prev parent reply other threads:[~2012-09-10 14:34 UTC|newest]
Thread overview: 129+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-09-09 21:04 [Qemu-devel] [PATCH 000/126] Rewrite s390x translator Richard Henderson
2012-09-09 21:04 ` [Qemu-devel] [PATCH 001/126] tcg: Add TCGV_IS_UNUSED_* Richard Henderson
2012-09-10 14:16 ` Aurelien Jarno
2012-09-09 21:04 ` [Qemu-devel] [PATCH 002/126] tcg: Add TCG_COND_NEVER, TCG_COND_ALWAYS Richard Henderson
2012-09-10 14:17 ` Aurelien Jarno
2012-09-09 21:04 ` [Qemu-devel] [PATCH 003/126] target-s390: Disassemble more z10 and z196 opcodes Richard Henderson
2012-09-09 21:04 ` [Qemu-devel] [PATCH 004/126] target-s390: Fix disassembly of cpsdr Richard Henderson
2012-09-09 21:04 ` [Qemu-devel] [PATCH 005/126] target-s390: Fix gdbstub Richard Henderson
2012-09-12 13:25 ` Alexander Graf
2012-09-12 15:11 ` Richard Henderson
2012-09-12 15:54 ` Alexander Graf
2012-09-12 16:15 ` Richard Henderson
2012-09-09 21:04 ` [Qemu-devel] [PATCH 006/126] target-s390: Add missing temp_free in gen_op_calc_cc Richard Henderson
2012-09-09 21:04 ` [Qemu-devel] [PATCH 007/126] target-s390: Use TCG registers for FPR Richard Henderson
2012-09-10 14:34 ` Aurelien Jarno [this message]
2012-09-10 14:45 ` Richard Henderson
2012-09-10 14:52 ` Aurelien Jarno
2012-09-09 21:04 ` [Qemu-devel] [PATCH 008/126] target-s390: Add format based disassassmbly infrastructure Richard Henderson
2012-09-09 21:04 ` [Qemu-devel] [PATCH 009/126] target-s390: Split out disas_jcc Richard Henderson
2012-09-09 21:04 ` [Qemu-devel] [PATCH 010/126] target-s390: Reorg exception handling Richard Henderson
2012-09-18 20:18 ` Alexander Graf
2012-09-19 0:14 ` Richard Henderson
2012-09-19 11:07 ` Alexander Graf
2012-09-19 11:29 ` Peter Maydell
2012-09-19 11:34 ` Alexander Graf
2012-09-19 13:02 ` Alexander Graf
2012-09-19 14:34 ` Richard Henderson
2012-09-19 14:40 ` Alexander Graf
2012-09-09 21:04 ` [Qemu-devel] [PATCH 011/126] target-s390: Convert ADD HALFWORD Richard Henderson
2012-09-09 21:04 ` [Qemu-devel] [PATCH 012/126] target-s390: Implement SUBTRACT HALFWORD Richard Henderson
2012-09-09 21:04 ` [Qemu-devel] [PATCH 013/126] target-s390: Implement ADD LOGICAL WITH SIGNED IMMEDIATE Richard Henderson
2012-09-09 21:04 ` [Qemu-devel] [PATCH 014/126] target-s390: Convert MULTIPLY Richard Henderson
2012-09-09 21:04 ` [Qemu-devel] [PATCH 015/126] target-s390: Convert AND, OR, XOR Richard Henderson
2012-09-09 21:04 ` [Qemu-devel] [PATCH 016/126] target-s390: Convert COMPARE, COMPARE LOGICAL Richard Henderson
2012-09-09 21:04 ` [Qemu-devel] [PATCH 017/126] target-s390: Convert LOAD, LOAD LOGICAL Richard Henderson
2012-09-09 21:04 ` [Qemu-devel] [PATCH 018/126] target-s390: Convert LOAD ADDRESS Richard Henderson
2012-09-09 21:04 ` [Qemu-devel] [PATCH 019/126] target-s390: Convert LOAD (LOGICAL) BYTE, CHARACTER, HALFWORD Richard Henderson
2012-09-09 21:04 ` [Qemu-devel] [PATCH 020/126] target-s390: Convert LOAD AND TEST Richard Henderson
2012-09-09 21:04 ` [Qemu-devel] [PATCH 021/126] target-s390: Convert LOAD LOGICAL IMMEDIATE Richard Henderson
2012-09-09 21:04 ` [Qemu-devel] [PATCH 022/126] target-s390: Convert LOAD COMPLIMENT, POSITIVE, NEGATIVE Richard Henderson
2012-09-09 21:04 ` [Qemu-devel] [PATCH 023/126] target-s390: Convert AND, OR, XOR, INSERT IMMEDIATE Richard Henderson
2012-09-09 21:04 ` [Qemu-devel] [PATCH 024/126] target-s390: Convert STORE Richard Henderson
2012-09-09 21:04 ` [Qemu-devel] [PATCH 025/126] target-s390: Convert ADD LOGICAL CARRY and SUBTRACT LOGICAL BORROW Richard Henderson
2012-09-09 21:04 ` [Qemu-devel] [PATCH 026/126] target-s390: Convert BRANCH AND SAVE Richard Henderson
2012-09-09 21:04 ` [Qemu-devel] [PATCH 027/126] target-s390: Convert BRANCH ON CONDITION Richard Henderson
2012-09-09 21:04 ` [Qemu-devel] [PATCH 028/126] target-s390: Convert BRANCH ON COUNT Richard Henderson
2012-09-09 21:04 ` [Qemu-devel] [PATCH 029/126] target-s390: Convert DIVIDE Richard Henderson
2012-09-09 21:04 ` [Qemu-devel] [PATCH 030/126] target-s390: Send signals for divide Richard Henderson
2012-09-09 21:04 ` [Qemu-devel] [PATCH 031/126] target-s390: Convert TEST UNDER MASK Richard Henderson
2012-09-09 21:04 ` [Qemu-devel] [PATCH 032/126] target-s390: Convert SET ADDRESSING MODE Richard Henderson
2012-09-09 21:04 ` [Qemu-devel] [PATCH 033/126] target-s390: Convert SUPERVISOR CALL Richard Henderson
2012-09-09 21:04 ` [Qemu-devel] [PATCH 034/126] target-s390: Convert MOVE LONG Richard Henderson
2012-09-09 21:04 ` [Qemu-devel] [PATCH 035/126] target-s390: Convert FP LOAD Richard Henderson
2012-09-09 21:04 ` [Qemu-devel] [PATCH 036/126] target-s390: Convert INSERT CHARACTER Richard Henderson
2012-09-09 21:04 ` [Qemu-devel] [PATCH 037/126] target-s390: Cleanup cc computation helpers Richard Henderson
2012-09-09 21:04 ` [Qemu-devel] [PATCH 038/126] target-s390: Convert INSERT CHARACTERS UNDER MASK Richard Henderson
2012-09-09 21:04 ` [Qemu-devel] [PATCH 039/126] target-s390: Convert EXECUTE Richard Henderson
2012-09-09 21:04 ` [Qemu-devel] [PATCH 040/126] target-s390: Convert FP STORE Richard Henderson
2012-09-09 21:04 ` [Qemu-devel] [PATCH 041/126] target-s390: Convert CONVERT TO DECIMAL Richard Henderson
2012-09-09 21:05 ` [Qemu-devel] [PATCH 042/126] target-s390: Convert SET SYSTEM MASK Richard Henderson
2012-09-09 21:05 ` [Qemu-devel] [PATCH 043/126] target-s390: Convert LOAD PSW Richard Henderson
2012-09-09 21:05 ` [Qemu-devel] [PATCH 044/126] target-s390: Convert DIAGNOSE Richard Henderson
2012-09-09 21:05 ` [Qemu-devel] [PATCH 045/126] target-s390: Convert SHIFT, ROTATE SINGLE Richard Henderson
2012-09-09 21:05 ` [Qemu-devel] [PATCH 046/126] target-s390: Convert SHIFT DOUBLE Richard Henderson
2012-09-09 21:05 ` [Qemu-devel] [PATCH 047/126] target-s390: Convert LOAD, STORE MULTIPLE Richard Henderson
2012-09-18 20:49 ` Alexander Graf
2012-09-19 0:15 ` Richard Henderson
2012-09-09 21:05 ` [Qemu-devel] [PATCH 048/126] target-s390: Convert MOVE Richard Henderson
2012-09-09 21:05 ` [Qemu-devel] [PATCH 049/126] target-s390: Convert NI, XI, OI Richard Henderson
2012-09-09 21:05 ` [Qemu-devel] [PATCH 050/126] target-s390: Convert STNSM, STOSM Richard Henderson
2012-09-09 21:05 ` [Qemu-devel] [PATCH 051/126] target-s390: Convert LAM, STAM Richard Henderson
2012-09-09 21:05 ` [Qemu-devel] [PATCH 052/126] target-s390: Convert CLCLE, MVCLE Richard Henderson
2012-09-09 21:05 ` [Qemu-devel] [PATCH 053/126] target-s390: Convert MVC Richard Henderson
2012-09-18 20:52 ` Alexander Graf
2012-09-09 21:05 ` [Qemu-devel] [PATCH 054/126] target-s390: Convert NC, XC, OC, TR, UNPK Richard Henderson
2012-09-09 21:05 ` [Qemu-devel] [PATCH 055/126] target-s390: Convert CLC Richard Henderson
2012-09-09 21:05 ` [Qemu-devel] [PATCH 056/126] target-s390: Convert MVCP, MVCS Richard Henderson
2012-09-09 21:05 ` [Qemu-devel] [PATCH 057/126] target-s390: Convert LRA Richard Henderson
2012-09-09 21:05 ` [Qemu-devel] [PATCH 058/126] target-s390: Convert SIGP Richard Henderson
2012-09-09 21:05 ` [Qemu-devel] [PATCH 059/126] target-s390: Convert EFPC, STFPC Richard Henderson
2012-09-09 21:05 ` [Qemu-devel] [PATCH 060/126] target-s390: Convert LCTL, STCTL Richard Henderson
2012-09-09 21:05 ` [Qemu-devel] [PATCH 061/126] target-s390: Convert COMPARE AND SWAP Richard Henderson
2012-09-09 21:05 ` [Qemu-devel] [PATCH 062/126] target-s390: Convert CLM Richard Henderson
2012-09-09 21:05 ` [Qemu-devel] [PATCH 063/126] target-s390: Convert STCM Richard Henderson
2012-09-09 21:05 ` [Qemu-devel] [PATCH 064/126] target-s390: Convert TPROT Richard Henderson
2012-09-09 21:05 ` [Qemu-devel] [PATCH 065/126] target-s390: Convert LOAD CONTROL, part 2 Richard Henderson
2012-09-09 21:05 ` [Qemu-devel] [PATCH 066/126] target-s390: Convert LOAD REVERSED Richard Henderson
2012-09-09 21:05 ` [Qemu-devel] [PATCH 067/126] target-s390: Convert STORE REVERSED Richard Henderson
2012-09-09 21:05 ` [Qemu-devel] [PATCH 068/126] target-s390: Convert LLGT Richard Henderson
2012-09-09 21:05 ` [Qemu-devel] [PATCH 069/126] target-s390: Convert FP ADD, COMPARE, LOAD TEST/ROUND/LENGTHENED Richard Henderson
2012-09-09 21:05 ` [Qemu-devel] [PATCH 070/126] target-s390: Convert FP SUBTRACT Richard Henderson
2012-09-09 21:05 ` [Qemu-devel] [PATCH 071/126] target-s390: Convert FP DIVIDE Richard Henderson
2012-09-09 21:05 ` [Qemu-devel] [PATCH 072/126] target-s390: Convert FP MULTIPLY Richard Henderson
2012-09-09 21:05 ` [Qemu-devel] [PATCH 073/126] target-s390: Convert MULTIPLY AND ADD, SUBTRACT Richard Henderson
2012-09-09 21:05 ` [Qemu-devel] [PATCH 074/126] target-s390: Convert TEST DATA CLASS Richard Henderson
2012-09-09 21:05 ` [Qemu-devel] [PATCH 075/126] target-s390: Convert FP LOAD COMPLIMENT, NEGATIVE, POSITIVE Richard Henderson
2012-09-09 21:05 ` [Qemu-devel] [PATCH 076/126] target-s390: Convert FP SQUARE ROOT Richard Henderson
2012-09-09 21:05 ` [Qemu-devel] [PATCH 077/126] target-s390: Convert LOAD ZERO Richard Henderson
2012-09-09 21:05 ` [Qemu-devel] [PATCH 078/126] target-s390: Convert CONVERT TO FIXED Richard Henderson
2012-09-09 21:05 ` [Qemu-devel] [PATCH 079/126] target-s390: Convert CONVERT FROM FIXED Richard Henderson
2012-09-09 21:05 ` [Qemu-devel] [PATCH 080/126] target-s390: Convert FLOGR Richard Henderson
2012-09-09 21:05 ` [Qemu-devel] [PATCH 081/126] target-s390: Convert LFPC, SFPC Richard Henderson
2012-09-09 21:05 ` [Qemu-devel] [PATCH 082/126] target-s390: Convert IPM Richard Henderson
2012-09-09 21:05 ` [Qemu-devel] [PATCH 083/126] target-s390: Convert CKSM Richard Henderson
2012-09-09 21:05 ` [Qemu-devel] [PATCH 084/126] target-s390: Convert EAR, SAR Richard Henderson
2012-09-09 21:05 ` [Qemu-devel] [PATCH 085/126] target-s390: Convert MVPG Richard Henderson
2012-09-09 21:05 ` [Qemu-devel] [PATCH 086/126] target-s390: Convert CLST, MVST Richard Henderson
2012-09-11 19:11 ` Blue Swirl
2012-09-11 21:09 ` Richard Henderson
2012-09-18 21:04 ` Alexander Graf
2012-09-09 21:05 ` [Qemu-devel] [PATCH 087/126] target-s390: Convert SRST Richard Henderson
2012-09-09 21:05 ` [Qemu-devel] [PATCH 088/126] target-s390: Convert STIDP Richard Henderson
2012-09-09 21:05 ` [Qemu-devel] [PATCH 089/126] target-s390: Convert SCK Richard Henderson
2012-09-09 21:05 ` [Qemu-devel] [PATCH 090/126] target-s390: Convert STCK Richard Henderson
2012-09-09 21:05 ` [Qemu-devel] [PATCH 091/126] target-s390: Convert SCKC, STCKC Richard Henderson
2012-09-09 21:05 ` [Qemu-devel] [PATCH 092/126] target-s390: Convert SPT, STPT Richard Henderson
2012-09-09 21:05 ` [Qemu-devel] [PATCH 093/126] target-s390: Convert SPKA Richard Henderson
2012-09-09 21:05 ` [Qemu-devel] [PATCH 094/126] target-s390: Convert PTLB Richard Henderson
2012-09-09 21:05 ` [Qemu-devel] [PATCH 095/126] target-s390: Convert SPX, STPX Richard Henderson
2012-09-09 21:05 ` [Qemu-devel] [PATCH 096/126] target-s390: Convert STAP Richard Henderson
2012-09-09 21:05 ` [Qemu-devel] [PATCH 097/126] target-s390: Convert IPTE Richard Henderson
2012-09-09 21:05 ` [Qemu-devel] [PATCH 098/126] target-s390: Convert ISKE Richard Henderson
2012-09-09 21:05 ` [Qemu-devel] [PATCH 099/126] target-s390: Convert SSKE Richard Henderson
2012-09-09 21:05 ` [Qemu-devel] [PATCH 100/126] target-s390: Convert RRBE Richard Henderson
2012-09-09 21:05 ` [Qemu-devel] [PATCH 101/126] target-s390: Convert subchannel instructions Richard Henderson
2012-09-18 21:08 ` [Qemu-devel] [PATCH 000/126] Rewrite s390x translator Alexander Graf
2012-09-18 21:09 ` Alexander Graf
2012-09-19 0:32 ` Richard Henderson
2012-09-19 11:04 ` Alexander Graf
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20120910143422.GZ6791@ohm.aurel32.net \
--to=aurelien@aurel32.net \
--cc=agraf@suse.de \
--cc=qemu-devel@nongnu.org \
--cc=rth@twiddle.net \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.