ioinst.c (abf7aee72ea66944a62962603e4c2381f5e473e7) ioinst.c (9323e79f10e5f5d8fffc3b307776173ca11faeae)
1/*
2 * I/O instructions for S/390
3 *
4 * Copyright 2012, 2015 IBM Corp.
5 * Author(s): Cornelia Huck <cornelia.huck@de.ibm.com>
6 *
7 * This work is licensed under the terms of the GNU GPL, version 2 or (at
8 * your option) any later version. See the COPYING file in the top-level

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

279 * The Ultravisor checks schid bit 16 to be one and bits 0-12
280 * to be 0 and injects a operand exception itself.
281 *
282 * Hence we should never end up here.
283 */
284 g_assert(!s390_is_pv());
285 /*
286 * As operand exceptions have a lower priority than access exceptions,
1/*
2 * I/O instructions for S/390
3 *
4 * Copyright 2012, 2015 IBM Corp.
5 * Author(s): Cornelia Huck <cornelia.huck@de.ibm.com>
6 *
7 * This work is licensed under the terms of the GNU GPL, version 2 or (at
8 * your option) any later version. See the COPYING file in the top-level

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

279 * The Ultravisor checks schid bit 16 to be one and bits 0-12
280 * to be 0 and injects a operand exception itself.
281 *
282 * Hence we should never end up here.
283 */
284 g_assert(!s390_is_pv());
285 /*
286 * As operand exceptions have a lower priority than access exceptions,
287 * we check whether the memory area is writeable (injecting the
287 * we check whether the memory area is writable (injecting the
288 * access execption if it is not) first.
289 */
290 if (!s390_cpu_virt_mem_check_write(cpu, addr, ar, sizeof(schib))) {
291 s390_program_interrupt(env, PGM_OPERAND, ra);
292 } else {
293 s390_cpu_virt_mem_handle_exc(cpu, ra);
294 }
295 return;

--- 523 unchanged lines hidden ---
288 * access execption if it is not) first.
289 */
290 if (!s390_cpu_virt_mem_check_write(cpu, addr, ar, sizeof(schib))) {
291 s390_program_interrupt(env, PGM_OPERAND, ra);
292 } else {
293 s390_cpu_virt_mem_handle_exc(cpu, ra);
294 }
295 return;

--- 523 unchanged lines hidden ---