On 09/12/2012 06:25 AM, Alexander Graf wrote:
>> + case S390_PSWM_REGNUM:
>> + env->psw.mask = tmpl;
>> + env->cc_op = (tmpl >> 13) & 3;
>
> Are you sure this is correct? I thought gdbstub would just ignore the cc bits.
Well... no it won't ignore the cc bits. But it would appear that I've got
them at the wrong location. From gdb/s390-tdep.c:
if (regnum == tdep->cc_regnum)
{
enum register_status status;
status = regcache_raw_read_unsigned (regcache, S390_PSWM_REGNUM, &val);
if (status == REG_VALID)
{
if (register_size (gdbarch, S390_PSWA_REGNUM) == 4)
val = (val >> 12) & 3;
else
val = (val >> 44) & 3;
store_unsigned_integer (buf, regsize, byte_order, val);
}
return status;
}
r~