Signed-off-by: Manos Pitsidianakis <manos.pitsidiana...@linaro.org> --- gdb-xml/aarch64-core.xml | 12 ++++++++++++ target/arm/gdbstub64.c | 7 +++++++ 2 files changed, 19 insertions(+)
diff --git a/gdb-xml/aarch64-core.xml b/gdb-xml/aarch64-core.xml index 2b74b87f908f792c24f76f212e4f7eaf335ddbc2..dffc92303fc7b7e8221cf6afd6009101f34352ed 100644 --- a/gdb-xml/aarch64-core.xml +++ b/gdb-xml/aarch64-core.xml @@ -108,4 +108,16 @@ <field name="N" start="31" end="31"/> </flags> <reg name="NZCV" bitsize="64" type="nzcv_flags"/> + + <flags id="daif_flags" size="8"> + <!-- FIQ interrupt mask. --> + <field name="F" start="6" end="6"/> + <!-- IRQ interrupt mask. --> + <field name="I" start="7" end="7"/> + <!-- SError interrupt mask. --> + <field name="A" start="8" end="8"/> + <!-- Debug exception mask. --> + <field name="D" start="9" end="9"/> + </flags> + <reg name="DAIF" bitsize="64" type="daif_flags"/> </feature> diff --git a/target/arm/gdbstub64.c b/target/arm/gdbstub64.c index dd3c6222a577efa03753cf07371afdedeefdb771..6c424ed361e32e12836c6ef00a06397bd684bac4 100644 --- a/target/arm/gdbstub64.c +++ b/target/arm/gdbstub64.c @@ -54,6 +54,9 @@ int aarch64_cpu_gdb_read_register(CPUState *cs, GByteArray *mem_buf, int n) case 35: /* NZCV */ return gdb_get_reg64(mem_buf, pstate_read(env) & PSTATE_NZCV); + case 36: + /* DAIF */ + return gdb_get_reg64(mem_buf, env->daif); } /* Unknown register. */ return 0; @@ -91,6 +94,10 @@ int aarch64_cpu_gdb_write_register(CPUState *cs, uint8_t *mem_buf, int n) tmp = (pstate_read(env) & ~PSTATE_NZCV) | (tmp & PSTATE_NZCV); pstate_write(env, tmp); return 8; + case 36: + /* DAIF */ + env->daif = tmp & PSTATE_DAIF; + return 8; } /* Unknown register. */ return 0; -- 2.47.2