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 --- |