translate.c (9701596d821d95d4e9193d1342feab06ae597cd7) translate.c (703d03a4aaf38f285555ef5422ba5ce075416fc4)
1/*
2 * S/390 translation
3 *
4 * Copyright (c) 2009 Ulrich Hecht
5 * Copyright (c) 2010 Alexander Graf
6 *
7 * This library is free software; you can redistribute it and/or
8 * modify it under the terms of the GNU Lesser General Public

--- 5755 unchanged lines hidden (view full) ---

5764{
5765 int x2 = have_field(s, x2) ? get_field(s, x2) : 0;
5766 o->in2 = get_address(s, x2, get_field(s, b2), get_field(s, d2));
5767}
5768#define SPEC_in2_a2 0
5769
5770static TCGv gen_ri2(DisasContext *s)
5771{
1/*
2 * S/390 translation
3 *
4 * Copyright (c) 2009 Ulrich Hecht
5 * Copyright (c) 2010 Alexander Graf
6 *
7 * This library is free software; you can redistribute it and/or
8 * modify it under the terms of the GNU Lesser General Public

--- 5755 unchanged lines hidden (view full) ---

5764{
5765 int x2 = have_field(s, x2) ? get_field(s, x2) : 0;
5766 o->in2 = get_address(s, x2, get_field(s, b2), get_field(s, d2));
5767}
5768#define SPEC_in2_a2 0
5769
5770static TCGv gen_ri2(DisasContext *s)
5771{
5772 return tcg_constant_i64(s->base.pc_next + (int64_t)get_field(s, i2) * 2);
5772 int64_t delta = (int64_t)get_field(s, i2) * 2;
5773 TCGv ri2;
5774
5775 if (unlikely(s->ex_value)) {
5776 ri2 = tcg_temp_new_i64();
5777 tcg_gen_ld_i64(ri2, cpu_env, offsetof(CPUS390XState, ex_target));
5778 tcg_gen_addi_i64(ri2, ri2, delta);
5779 } else {
5780 ri2 = tcg_constant_i64(s->base.pc_next + delta);
5781 }
5782
5783 return ri2;
5773}
5774
5775static void in2_ri2(DisasContext *s, DisasOps *o)
5776{
5777 o->in2 = gen_ri2(s);
5778}
5779#define SPEC_in2_ri2 0
5780

--- 735 unchanged lines hidden ---
5784}
5785
5786static void in2_ri2(DisasContext *s, DisasOps *o)
5787{
5788 o->in2 = gen_ri2(s);
5789}
5790#define SPEC_in2_ri2 0
5791

--- 735 unchanged lines hidden ---