qemu/target-sparc/exec.h
<<
>>
Prefs
   1#ifndef EXEC_SPARC_H
   2#define EXEC_SPARC_H 1
   3#include "config.h"
   4#include "dyngen-exec.h"
   5
   6register struct CPUSPARCState *env asm(AREG0);
   7
   8#define DT0 (env->dt0)
   9#define DT1 (env->dt1)
  10#define QT0 (env->qt0)
  11#define QT1 (env->qt1)
  12
  13#include "cpu.h"
  14#include "exec-all.h"
  15
  16static inline void env_to_regs(void)
  17{
  18}
  19
  20static inline void regs_to_env(void)
  21{
  22}
  23
  24/* op_helper.c */
  25void do_interrupt(CPUState *env);
  26
  27static inline int cpu_interrupts_enabled(CPUState *env1)
  28{
  29#if !defined (TARGET_SPARC64)
  30    if (env1->psret != 0)
  31        return 1;
  32#else
  33    if (env1->pstate & PS_IE)
  34        return 1;
  35#endif
  36
  37    return 0;
  38}
  39
  40static inline int cpu_has_work(CPUState *env1)
  41{
  42    return (env1->interrupt_request & CPU_INTERRUPT_HARD) &&
  43           cpu_interrupts_enabled(env1);
  44}
  45
  46
  47static inline int cpu_halted(CPUState *env1) {
  48    if (!env1->halted)
  49        return 0;
  50    if (cpu_has_work(env1)) {
  51        env1->halted = 0;
  52        return 0;
  53    }
  54    return EXCP_HALTED;
  55}
  56
  57#endif
  58