Browse Source

target-alpha: Remove partial support for palcode emulation.

This code does not work, and will be replaced by a bios image.

Signed-off-by: Richard Henderson <rth@twiddle.net>
remotes/github/stable-0.15
Richard Henderson 16 years ago
committed by Richard Henderson
parent
commit
352e48b0f4
  1. 2
      Makefile.target
  2. 1048
      hw/alpha_palcode.c
  3. 35
      target-alpha/cpu.h
  4. 2
      target-alpha/helper.c
  5. 2
      target-alpha/translate.c

2
Makefile.target

@ -376,7 +376,7 @@ obj-m68k-y += m68k-semi.o dummy_m68k.o
obj-s390x-y = s390-virtio-bus.o s390-virtio.o
obj-alpha-y = alpha_palcode.o
obj-alpha-y =
main.o: QEMU_CFLAGS+=$(GPROF_CFLAGS)

1048
hw/alpha_palcode.c

File diff suppressed because it is too large

35
target-alpha/cpu.h

@ -319,36 +319,6 @@ enum {
typedef struct CPUAlphaState CPUAlphaState;
typedef struct pal_handler_t pal_handler_t;
struct pal_handler_t {
/* Reset */
void (*reset)(CPUAlphaState *env);
/* Uncorrectable hardware error */
void (*machine_check)(CPUAlphaState *env);
/* Arithmetic exception */
void (*arithmetic)(CPUAlphaState *env);
/* Interrupt / correctable hardware error */
void (*interrupt)(CPUAlphaState *env);
/* Data fault */
void (*dfault)(CPUAlphaState *env);
/* DTB miss pal */
void (*dtb_miss_pal)(CPUAlphaState *env);
/* DTB miss native */
void (*dtb_miss_native)(CPUAlphaState *env);
/* Unaligned access */
void (*unalign)(CPUAlphaState *env);
/* ITB miss */
void (*itb_miss)(CPUAlphaState *env);
/* Instruction stream access violation */
void (*itb_acv)(CPUAlphaState *env);
/* Reserved or privileged opcode */
void (*opcdec)(CPUAlphaState *env);
/* Floating point exception */
void (*fen)(CPUAlphaState *env);
/* Call pal instruction */
void (*call_pal)(CPUAlphaState *env, uint32_t palcode);
};
#define NB_MMU_MODES 4
struct CPUAlphaState {
@ -393,7 +363,6 @@ struct CPUAlphaState {
uint32_t features;
uint32_t amask;
int implver;
pal_handler_t *pal_handler;
};
#define cpu_init cpu_alpha_init
@ -506,10 +475,6 @@ uint64_t cpu_alpha_load_fpcr (CPUState *env);
void cpu_alpha_store_fpcr (CPUState *env, uint64_t val);
int cpu_alpha_mfpr (CPUState *env, int iprn, uint64_t *valp);
int cpu_alpha_mtpr (CPUState *env, int iprn, uint64_t val, uint64_t *oldvalp);
#if !defined (CONFIG_USER_ONLY)
void pal_init (CPUState *env);
void call_pal (CPUState *env);
#endif
static inline void cpu_get_tb_cpu_state(CPUState *env, target_ulong *pc,
target_ulong *cs_base, int *flags)

2
target-alpha/helper.c

@ -528,7 +528,7 @@ void do_interrupt (CPUState *env)
env->pc = env->ipr[IPR_PAL_BASE] + excp;
} else {
/* We use emulated PALcode */
call_pal(env);
abort();
/* Emulate REI */
env->pc = env->ipr[IPR_EXC_ADDR] & ~7;
env->ipr[IPR_EXC_ADDR] = env->ipr[IPR_EXC_ADDR] & 1;

2
target-alpha/translate.c

@ -3335,8 +3335,6 @@ CPUAlphaState * cpu_alpha_init (const char *cpu_model)
env->ps |= 1 << 3;
cpu_alpha_store_fpcr(env, (FPCR_INVD | FPCR_DZED | FPCR_OVFD
| FPCR_UNFD | FPCR_INED | FPCR_DNOD));
#else
pal_init(env);
#endif
env->lock_addr = -1;

Loading…
Cancel
Save