mirror of https://github.com/proxmox/mirror_qemu
target-xtensa: add target stubs
Signed-off-by: Max Filippov <jcmvbkbc@gmail.com> Signed-off-by: Blue Swirl <blauwirbel@gmail.com>master
parent
83818f7cdd
commit
2328826b1d
|
@ -368,6 +368,8 @@ obj-s390x-y = s390-virtio-bus.o s390-virtio.o
|
||||||
obj-alpha-y = i8259.o mc146818rtc.o
|
obj-alpha-y = i8259.o mc146818rtc.o
|
||||||
obj-alpha-y += vga.o cirrus_vga.o
|
obj-alpha-y += vga.o cirrus_vga.o
|
||||||
|
|
||||||
|
obj-xtensa-y += xtensa_pic.o
|
||||||
|
|
||||||
main.o: QEMU_CFLAGS+=$(GPROF_CFLAGS)
|
main.o: QEMU_CFLAGS+=$(GPROF_CFLAGS)
|
||||||
|
|
||||||
monitor.o: hmp-commands.h qmp-commands.h
|
monitor.o: hmp-commands.h qmp-commands.h
|
||||||
|
|
|
@ -78,6 +78,8 @@ const char arch_config_name[] = CONFIG_QEMU_CONFDIR "/target-" TARGET_ARCH ".con
|
||||||
#define QEMU_ARCH QEMU_ARCH_SH4
|
#define QEMU_ARCH QEMU_ARCH_SH4
|
||||||
#elif defined(TARGET_SPARC)
|
#elif defined(TARGET_SPARC)
|
||||||
#define QEMU_ARCH QEMU_ARCH_SPARC
|
#define QEMU_ARCH QEMU_ARCH_SPARC
|
||||||
|
#elif defined(TARGET_XTENSA)
|
||||||
|
#define QEMU_ARCH QEMU_ARCH_XTENSA
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
const uint32_t arch_type = QEMU_ARCH;
|
const uint32_t arch_type = QEMU_ARCH;
|
||||||
|
|
|
@ -17,6 +17,7 @@ enum {
|
||||||
QEMU_ARCH_S390X = 512,
|
QEMU_ARCH_S390X = 512,
|
||||||
QEMU_ARCH_SH4 = 1024,
|
QEMU_ARCH_SH4 = 1024,
|
||||||
QEMU_ARCH_SPARC = 2048,
|
QEMU_ARCH_SPARC = 2048,
|
||||||
|
QEMU_ARCH_XTENSA = 4096,
|
||||||
};
|
};
|
||||||
|
|
||||||
extern const uint32_t arch_type;
|
extern const uint32_t arch_type;
|
||||||
|
|
|
@ -223,6 +223,7 @@ int cpu_exec(CPUState *env)
|
||||||
#elif defined(TARGET_SH4)
|
#elif defined(TARGET_SH4)
|
||||||
#elif defined(TARGET_CRIS)
|
#elif defined(TARGET_CRIS)
|
||||||
#elif defined(TARGET_S390X)
|
#elif defined(TARGET_S390X)
|
||||||
|
#elif defined(TARGET_XTENSA)
|
||||||
/* XXXXX */
|
/* XXXXX */
|
||||||
#else
|
#else
|
||||||
#error unsupported target CPU
|
#error unsupported target CPU
|
||||||
|
@ -617,6 +618,7 @@ int cpu_exec(CPUState *env)
|
||||||
#elif defined(TARGET_ALPHA)
|
#elif defined(TARGET_ALPHA)
|
||||||
#elif defined(TARGET_CRIS)
|
#elif defined(TARGET_CRIS)
|
||||||
#elif defined(TARGET_S390X)
|
#elif defined(TARGET_S390X)
|
||||||
|
#elif defined(TARGET_XTENSA)
|
||||||
/* XXXXX */
|
/* XXXXX */
|
||||||
#else
|
#else
|
||||||
#error unsupported target CPU
|
#error unsupported target CPU
|
||||||
|
|
2
elf.h
2
elf.h
|
@ -125,6 +125,8 @@ typedef int64_t Elf64_Sxword;
|
||||||
#define EM_MICROBLAZE 189
|
#define EM_MICROBLAZE 189
|
||||||
#define EM_MICROBLAZE_OLD 0xBAAB
|
#define EM_MICROBLAZE_OLD 0xBAAB
|
||||||
|
|
||||||
|
#define EM_XTENSA 94 /* Tensilica Xtensa */
|
||||||
|
|
||||||
/* This is the info that is needed to parse the dynamic section of the file */
|
/* This is the info that is needed to parse the dynamic section of the file */
|
||||||
#define DT_NULL 0
|
#define DT_NULL 0
|
||||||
#define DT_NEEDED 1
|
#define DT_NEEDED 1
|
||||||
|
|
|
@ -0,0 +1,38 @@
|
||||||
|
/*
|
||||||
|
* Copyright (c) 2011, Max Filippov, Open Source and Linux Lab.
|
||||||
|
* All rights reserved.
|
||||||
|
*
|
||||||
|
* Redistribution and use in source and binary forms, with or without
|
||||||
|
* modification, are permitted provided that the following conditions are met:
|
||||||
|
* * Redistributions of source code must retain the above copyright
|
||||||
|
* notice, this list of conditions and the following disclaimer.
|
||||||
|
* * Redistributions in binary form must reproduce the above copyright
|
||||||
|
* notice, this list of conditions and the following disclaimer in the
|
||||||
|
* documentation and/or other materials provided with the distribution.
|
||||||
|
* * Neither the name of the Open Source and Linux Lab nor the
|
||||||
|
* names of its contributors may be used to endorse or promote products
|
||||||
|
* derived from this software without specific prior written permission.
|
||||||
|
*
|
||||||
|
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||||
|
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||||
|
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||||
|
* ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
|
||||||
|
* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||||
|
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||||
|
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
|
||||||
|
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||||
|
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||||
|
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include "hw.h"
|
||||||
|
#include "pc.h"
|
||||||
|
|
||||||
|
/* Stub functions for hardware that doesn't exist. */
|
||||||
|
void pic_info(Monitor *mon)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
void irq_info(Monitor *mon)
|
||||||
|
{
|
||||||
|
}
|
|
@ -0,0 +1,95 @@
|
||||||
|
/*
|
||||||
|
* Copyright (c) 2011, Max Filippov, Open Source and Linux Lab.
|
||||||
|
* All rights reserved.
|
||||||
|
*
|
||||||
|
* Redistribution and use in source and binary forms, with or without
|
||||||
|
* modification, are permitted provided that the following conditions are met:
|
||||||
|
* * Redistributions of source code must retain the above copyright
|
||||||
|
* notice, this list of conditions and the following disclaimer.
|
||||||
|
* * Redistributions in binary form must reproduce the above copyright
|
||||||
|
* notice, this list of conditions and the following disclaimer in the
|
||||||
|
* documentation and/or other materials provided with the distribution.
|
||||||
|
* * Neither the name of the Open Source and Linux Lab nor the
|
||||||
|
* names of its contributors may be used to endorse or promote products
|
||||||
|
* derived from this software without specific prior written permission.
|
||||||
|
*
|
||||||
|
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||||
|
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||||
|
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||||
|
* ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
|
||||||
|
* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||||
|
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||||
|
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
|
||||||
|
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||||
|
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||||
|
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef CPU_XTENSA_H
|
||||||
|
#define CPU_XTENSA_H
|
||||||
|
|
||||||
|
#define TARGET_LONG_BITS 32
|
||||||
|
#define ELF_MACHINE EM_XTENSA
|
||||||
|
|
||||||
|
#define CPUState struct CPUXtensaState
|
||||||
|
|
||||||
|
#include "config.h"
|
||||||
|
#include "qemu-common.h"
|
||||||
|
#include "cpu-defs.h"
|
||||||
|
|
||||||
|
#define TARGET_HAS_ICE 1
|
||||||
|
|
||||||
|
#define NB_MMU_MODES 4
|
||||||
|
|
||||||
|
#define TARGET_PHYS_ADDR_SPACE_BITS 32
|
||||||
|
#define TARGET_VIRT_ADDR_SPACE_BITS 32
|
||||||
|
#define TARGET_PAGE_BITS 12
|
||||||
|
|
||||||
|
typedef struct CPUXtensaState {
|
||||||
|
uint32_t regs[16];
|
||||||
|
uint32_t pc;
|
||||||
|
uint32_t sregs[256];
|
||||||
|
|
||||||
|
CPU_COMMON
|
||||||
|
} CPUXtensaState;
|
||||||
|
|
||||||
|
#define cpu_init cpu_xtensa_init
|
||||||
|
#define cpu_exec cpu_xtensa_exec
|
||||||
|
#define cpu_gen_code cpu_xtensa_gen_code
|
||||||
|
#define cpu_signal_handler cpu_xtensa_signal_handler
|
||||||
|
#define cpu_list xtensa_cpu_list
|
||||||
|
|
||||||
|
CPUXtensaState *cpu_xtensa_init(const char *cpu_model);
|
||||||
|
void xtensa_translate_init(void);
|
||||||
|
int cpu_xtensa_exec(CPUXtensaState *s);
|
||||||
|
void do_interrupt(CPUXtensaState *s);
|
||||||
|
int cpu_xtensa_signal_handler(int host_signum, void *pinfo, void *puc);
|
||||||
|
void xtensa_cpu_list(FILE *f, fprintf_function cpu_fprintf);
|
||||||
|
|
||||||
|
static inline int cpu_mmu_index(CPUState *env)
|
||||||
|
{
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
static inline void cpu_get_tb_cpu_state(CPUState *env, target_ulong *pc,
|
||||||
|
target_ulong *cs_base, int *flags)
|
||||||
|
{
|
||||||
|
*pc = env->pc;
|
||||||
|
*cs_base = 0;
|
||||||
|
*flags = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
#include "cpu-all.h"
|
||||||
|
#include "exec-all.h"
|
||||||
|
|
||||||
|
static inline int cpu_has_work(CPUState *env)
|
||||||
|
{
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
static inline void cpu_pc_from_tb(CPUState *env, TranslationBlock *tb)
|
||||||
|
{
|
||||||
|
env->pc = tb->pc;
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif
|
|
@ -0,0 +1,73 @@
|
||||||
|
/*
|
||||||
|
* Copyright (c) 2011, Max Filippov, Open Source and Linux Lab.
|
||||||
|
* All rights reserved.
|
||||||
|
*
|
||||||
|
* Redistribution and use in source and binary forms, with or without
|
||||||
|
* modification, are permitted provided that the following conditions are met:
|
||||||
|
* * Redistributions of source code must retain the above copyright
|
||||||
|
* notice, this list of conditions and the following disclaimer.
|
||||||
|
* * Redistributions in binary form must reproduce the above copyright
|
||||||
|
* notice, this list of conditions and the following disclaimer in the
|
||||||
|
* documentation and/or other materials provided with the distribution.
|
||||||
|
* * Neither the name of the Open Source and Linux Lab nor the
|
||||||
|
* names of its contributors may be used to endorse or promote products
|
||||||
|
* derived from this software without specific prior written permission.
|
||||||
|
*
|
||||||
|
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||||
|
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||||
|
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||||
|
* ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
|
||||||
|
* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||||
|
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||||
|
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
|
||||||
|
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||||
|
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||||
|
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include "cpu.h"
|
||||||
|
#include "exec-all.h"
|
||||||
|
#include "gdbstub.h"
|
||||||
|
#include "qemu-common.h"
|
||||||
|
#include "host-utils.h"
|
||||||
|
#if !defined(CONFIG_USER_ONLY)
|
||||||
|
#include "hw/loader.h"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
void cpu_reset(CPUXtensaState *env)
|
||||||
|
{
|
||||||
|
env->pc = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
CPUXtensaState *cpu_xtensa_init(const char *cpu_model)
|
||||||
|
{
|
||||||
|
static int tcg_inited;
|
||||||
|
CPUXtensaState *env;
|
||||||
|
|
||||||
|
env = g_malloc0(sizeof(*env));
|
||||||
|
cpu_exec_init(env);
|
||||||
|
|
||||||
|
if (!tcg_inited) {
|
||||||
|
tcg_inited = 1;
|
||||||
|
xtensa_translate_init();
|
||||||
|
}
|
||||||
|
|
||||||
|
qemu_init_vcpu(env);
|
||||||
|
return env;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void xtensa_cpu_list(FILE *f, fprintf_function cpu_fprintf)
|
||||||
|
{
|
||||||
|
cpu_fprintf(f, "Available CPUs:\n"
|
||||||
|
" Xtensa core\n");
|
||||||
|
}
|
||||||
|
|
||||||
|
target_phys_addr_t cpu_get_phys_page_debug(CPUState *env, target_ulong addr)
|
||||||
|
{
|
||||||
|
return addr;
|
||||||
|
}
|
||||||
|
|
||||||
|
void do_interrupt(CPUState *env)
|
||||||
|
{
|
||||||
|
}
|
|
@ -0,0 +1,38 @@
|
||||||
|
/*
|
||||||
|
* Copyright (c) 2011, Max Filippov, Open Source and Linux Lab.
|
||||||
|
* All rights reserved.
|
||||||
|
*
|
||||||
|
* Redistribution and use in source and binary forms, with or without
|
||||||
|
* modification, are permitted provided that the following conditions are met:
|
||||||
|
* * Redistributions of source code must retain the above copyright
|
||||||
|
* notice, this list of conditions and the following disclaimer.
|
||||||
|
* * Redistributions in binary form must reproduce the above copyright
|
||||||
|
* notice, this list of conditions and the following disclaimer in the
|
||||||
|
* documentation and/or other materials provided with the distribution.
|
||||||
|
* * Neither the name of the Open Source and Linux Lab nor the
|
||||||
|
* names of its contributors may be used to endorse or promote products
|
||||||
|
* derived from this software without specific prior written permission.
|
||||||
|
*
|
||||||
|
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||||
|
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||||
|
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||||
|
* ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
|
||||||
|
* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||||
|
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||||
|
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
|
||||||
|
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||||
|
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||||
|
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include "hw/hw.h"
|
||||||
|
#include "hw/boards.h"
|
||||||
|
|
||||||
|
void cpu_save(QEMUFile *f, void *opaque)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
int cpu_load(QEMUFile *f, void *opaque, int version_id)
|
||||||
|
{
|
||||||
|
return 0;
|
||||||
|
}
|
|
@ -0,0 +1,52 @@
|
||||||
|
/*
|
||||||
|
* Copyright (c) 2011, Max Filippov, Open Source and Linux Lab.
|
||||||
|
* All rights reserved.
|
||||||
|
*
|
||||||
|
* Redistribution and use in source and binary forms, with or without
|
||||||
|
* modification, are permitted provided that the following conditions are met:
|
||||||
|
* * Redistributions of source code must retain the above copyright
|
||||||
|
* notice, this list of conditions and the following disclaimer.
|
||||||
|
* * Redistributions in binary form must reproduce the above copyright
|
||||||
|
* notice, this list of conditions and the following disclaimer in the
|
||||||
|
* documentation and/or other materials provided with the distribution.
|
||||||
|
* * Neither the name of the Open Source and Linux Lab nor the
|
||||||
|
* names of its contributors may be used to endorse or promote products
|
||||||
|
* derived from this software without specific prior written permission.
|
||||||
|
*
|
||||||
|
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||||
|
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||||
|
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||||
|
* ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
|
||||||
|
* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||||
|
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||||
|
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
|
||||||
|
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||||
|
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||||
|
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include "cpu.h"
|
||||||
|
#include "dyngen-exec.h"
|
||||||
|
|
||||||
|
#define MMUSUFFIX _mmu
|
||||||
|
|
||||||
|
#define SHIFT 0
|
||||||
|
#include "softmmu_template.h"
|
||||||
|
|
||||||
|
#define SHIFT 1
|
||||||
|
#include "softmmu_template.h"
|
||||||
|
|
||||||
|
#define SHIFT 2
|
||||||
|
#include "softmmu_template.h"
|
||||||
|
|
||||||
|
#define SHIFT 3
|
||||||
|
#include "softmmu_template.h"
|
||||||
|
|
||||||
|
void tlb_fill(target_ulong addr, int is_write, int mmu_idx, void *retaddr)
|
||||||
|
{
|
||||||
|
tlb_set_page(cpu_single_env,
|
||||||
|
addr & ~(TARGET_PAGE_SIZE - 1),
|
||||||
|
addr & ~(TARGET_PAGE_SIZE - 1),
|
||||||
|
PAGE_READ | PAGE_WRITE | PAGE_EXEC,
|
||||||
|
mmu_idx, TARGET_PAGE_SIZE);
|
||||||
|
}
|
|
@ -0,0 +1,68 @@
|
||||||
|
/*
|
||||||
|
* Xtensa ISA:
|
||||||
|
* http://www.tensilica.com/products/literature-docs/documentation/xtensa-isa-databook.htm
|
||||||
|
*
|
||||||
|
* Copyright (c) 2011, Max Filippov, Open Source and Linux Lab.
|
||||||
|
* All rights reserved.
|
||||||
|
*
|
||||||
|
* Redistribution and use in source and binary forms, with or without
|
||||||
|
* modification, are permitted provided that the following conditions are met:
|
||||||
|
* * Redistributions of source code must retain the above copyright
|
||||||
|
* notice, this list of conditions and the following disclaimer.
|
||||||
|
* * Redistributions in binary form must reproduce the above copyright
|
||||||
|
* notice, this list of conditions and the following disclaimer in the
|
||||||
|
* documentation and/or other materials provided with the distribution.
|
||||||
|
* * Neither the name of the Open Source and Linux Lab nor the
|
||||||
|
* names of its contributors may be used to endorse or promote products
|
||||||
|
* derived from this software without specific prior written permission.
|
||||||
|
*
|
||||||
|
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||||
|
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||||
|
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||||
|
* ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
|
||||||
|
* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||||
|
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||||
|
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
|
||||||
|
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||||
|
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||||
|
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include <stdio.h>
|
||||||
|
|
||||||
|
#include "cpu.h"
|
||||||
|
#include "exec-all.h"
|
||||||
|
#include "disas.h"
|
||||||
|
#include "tcg-op.h"
|
||||||
|
#include "qemu-log.h"
|
||||||
|
|
||||||
|
|
||||||
|
void xtensa_translate_init(void)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
void gen_intermediate_code(CPUState *env, TranslationBlock *tb)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
void gen_intermediate_code_pc(CPUState *env, TranslationBlock *tb)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
void cpu_dump_state(CPUState *env, FILE *f, fprintf_function cpu_fprintf,
|
||||||
|
int flags)
|
||||||
|
{
|
||||||
|
int i;
|
||||||
|
|
||||||
|
cpu_fprintf(f, "PC=%08x\n", env->pc);
|
||||||
|
|
||||||
|
for (i = 0; i < 16; ++i) {
|
||||||
|
cpu_fprintf(f, "A%02d=%08x%c", i, env->regs[i],
|
||||||
|
(i % 4) == 3 ? '\n' : ' ');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void restore_state_to_opc(CPUState *env, TranslationBlock *tb, int pc_pos)
|
||||||
|
{
|
||||||
|
env->pc = gen_opc_pc[pc_pos];
|
||||||
|
}
|
Loading…
Reference in New Issue