Annotation of qemu/target-alpha/exec.h, revision 1.1.1.1

1.1       root        1: /*
                      2:  *  Alpha emulation cpu run-time definitions for qemu.
                      3:  *
                      4:  *  Copyright (c) 2007 Jocelyn Mayer
                      5:  *
                      6:  * This library is free software; you can redistribute it and/or
                      7:  * modify it under the terms of the GNU Lesser General Public
                      8:  * License as published by the Free Software Foundation; either
                      9:  * version 2 of the License, or (at your option) any later version.
                     10:  *
                     11:  * This library is distributed in the hope that it will be useful,
                     12:  * but WITHOUT ANY WARRANTY; without even the implied warranty of
                     13:  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
                     14:  * Lesser General Public License for more details.
                     15:  *
                     16:  * You should have received a copy of the GNU Lesser General Public
                     17:  * License along with this library; if not, write to the Free Software
                     18:  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
                     19:  */
                     20: 
                     21: #if !defined (__ALPHA_EXEC_H__)
                     22: #define __ALPHA_EXEC_H__
                     23: 
                     24: #include "config.h"
                     25: 
                     26: #include "dyngen-exec.h"
                     27: 
                     28: #define TARGET_LONG_BITS 64
                     29: 
                     30: register struct CPUAlphaState *env asm(AREG0);
                     31: 
                     32: #if TARGET_LONG_BITS > HOST_LONG_BITS
                     33: 
                     34: /* no registers can be used */
                     35: #define T0 (env->t0)
                     36: #define T1 (env->t1)
                     37: #define T2 (env->t2)
                     38: 
                     39: #else
                     40: 
                     41: register uint64_t T0 asm(AREG1);
                     42: register uint64_t T1 asm(AREG2);
                     43: register uint64_t T2 asm(AREG3);
                     44: 
                     45: #endif /* TARGET_LONG_BITS > HOST_LONG_BITS */
                     46: 
                     47: #define PARAM(n) ((uint64_t)PARAM##n)
                     48: #define SPARAM(n) ((int32_t)PARAM##n)
                     49: #define FT0 (env->ft0)
                     50: #define FT1 (env->ft1)
                     51: #define FT2 (env->ft2)
                     52: #define FP_STATUS (env->fp_status)
                     53: 
                     54: #if defined (DEBUG_OP)
                     55: #define RETURN() __asm__ __volatile__("nop" : : : "memory");
                     56: #else
                     57: #define RETURN() __asm__ __volatile__("" : : : "memory");
                     58: #endif
                     59: 
                     60: #include "cpu.h"
                     61: #include "exec-all.h"
                     62: 
                     63: #if !defined(CONFIG_USER_ONLY)
                     64: #include "softmmu_exec.h"
                     65: #endif /* !defined(CONFIG_USER_ONLY) */
                     66: 
                     67: static always_inline void env_to_regs(void)
                     68: {
                     69: }
                     70: 
                     71: static always_inline void regs_to_env(void)
                     72: {
                     73: }
                     74: 
                     75: int cpu_alpha_handle_mmu_fault (CPUState *env, uint64_t address, int rw,
                     76:                                 int mmu_idx, int is_softmmu);
                     77: int cpu_alpha_mfpr (CPUState *env, int iprn, uint64_t *valp);
                     78: int cpu_alpha_mtpr (CPUState *env, int iprn, uint64_t val, uint64_t *oldvalp);
                     79: 
                     80: void do_interrupt (CPUState *env);
                     81: 
                     82: static always_inline int cpu_halted(CPUState *env) {
                     83:     if (!env->halted)
                     84:         return 0;
                     85:     if (env->interrupt_request & CPU_INTERRUPT_HARD) {
                     86:         env->halted = 0;
                     87:         return 0;
                     88:     }
                     89:     return EXCP_HALTED;
                     90: }
                     91: 
                     92: #endif /* !defined (__ALPHA_EXEC_H__) */

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.