qemu/target-cris/exec.h
<<
>>
Prefs
   1/*
   2 *  CRIS execution defines
   3 *
   4 *  Copyright (c) 2007 AXIS Communications AB
   5 *  Written by Edgar E. Iglesias
   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
   9 * License as published by the Free Software Foundation; either
  10 * version 2 of the License, or (at your option) any later version.
  11 *
  12 * This library is distributed in the hope that it will be useful,
  13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
  14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
  15 * General Public License for more details.
  16 *
  17 * You should have received a copy of the GNU Lesser General Public
  18 * License along with this library; if not, see <http://www.gnu.org/licenses/>.
  19 */
  20#include "dyngen-exec.h"
  21
  22register struct CPUCRISState *env asm(AREG0);
  23
  24#include "cpu.h"
  25#include "exec-all.h"
  26
  27#if !defined(CONFIG_USER_ONLY)
  28#include "softmmu_exec.h"
  29#endif
  30
  31static inline int cpu_has_work(CPUState *env)
  32{
  33    return (env->interrupt_request & (CPU_INTERRUPT_HARD | CPU_INTERRUPT_NMI));
  34}
  35
  36static inline int cpu_halted(CPUState *env) {
  37        if (!env->halted)
  38                return 0;
  39
  40        /* IRQ, NMI and GURU execeptions wakes us up.  */
  41        if (env->interrupt_request
  42            & (CPU_INTERRUPT_HARD | CPU_INTERRUPT_NMI)) {
  43                env->halted = 0;
  44                return 0;
  45        }
  46        return EXCP_HALTED;
  47}
  48
  49static inline void cpu_pc_from_tb(CPUState *env, TranslationBlock *tb)
  50{
  51    env->pc = tb->pc;
  52}
  53
  54