qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Qemu-devel] [PATCH v2 00/15] TriCore architecture guest implementation


From: Bastian Koppelmann
Subject: [Qemu-devel] [PATCH v2 00/15] TriCore architecture guest implementation
Date: Mon, 14 Jul 2014 18:40:56 +0100

Hi,

my aim is to add Infineon's TriCore architecture to QEMU. This series of 
patches adds the target stubs, a basic testboard and a softmmu for system mode 
emulation. Furthermore it adds all the 16 bit long instructions of the 
architecture grouped by opcode format.

After this series of patches. Another one will follow, which adds a lot of the 
32 bit long instructions.

All the best

Bastian

Changelog v1 -> v2:
    - Move activation of target patch1->patch4.
    - Remove host related in configure.
    - Remove host related code in user-exec.
    - Remove active_tc struct.
    - Change define GPR first, then CSFR.
    - Fixed QEMU_ARCH_TRICORE using the right number.
    - Add next_pc to DisasContext and change pc calculation.
    - Remove insn_bytes.
    - MASK_BITS_SHIFT uses extract32.
    - Remove MASK_BITS.
    - Add MASK_BITS_SHIFT_SEXT for sign extended masks.
    - Add extra sign extended masks for SB_DISP8/SBC_CONST4/SRC_CONST4
    - helper_shac uses sextract32 for the constant and add len parameter.
    - Replace else case with signed right shift in helper_shac.
    - Remove sign_extend() and use sextract32.
    - Replace branches in OP_COND makro with movcond.
    - Remove gen_cond_mov and use tcg_gen_movcond_tl instead.
    - Remove gen_sh and and change gen_shi to a special case.
    - Moved all SRC/SRR/SSR/SC/SLR/SRO instructions to one decode function.
    - Replace gen_ssov with helper for add_ssov and sub_ssov.
    - Remove AND in ST_B and ST_H instructions.
    - Load/Store instructions now use new TCGMemOp.
    - Replace OP_MEM_INDIRECT with gen_offset_ld/st functions using TCGMemOp.
    - Fill in cdc_increment/cdc_decrement
    - Replace save/restore_context with save/restore_context_upper and 
save_context_lower
    - Remove CONTEXT_LOWER/UPPER enum.
    - Remove printfs.
    - helper_call uses next_pc instead of pc and insn_bytes.
    - Add gen_goto_tb and replace some tcg_gen_exit_tb with gen_goto_tb
    - Moved SB instructions to one case.
    - Change compare to 0 at instructions JZ_T and JNZ_T.
    - Group SBC instructions to one case.
    - Group SBRN instructions to one case.
    - Change gen_loop() to subtract first and then compare to -1.
    - Change gen_loop() using next_pc insted of insn_bytes.
    - Change SBR_LOOP instructions to use offset * 2 -32.
    - Change cdc_zero using clo32 instead of a loop.
    - Change gen_saturate/_h using movecond instead of a branch.
    - Remove rsubi and use subfi_tl instead.
    - Change SR_JI instruction to use the right mask.
    - Remove BS_STOP on NOP isntruction.
    - Add BS_BRANCH on RFE instruction.
    - Remove BS_STOP of DEBUG instructions.
    - Remove duplicate SSRO instructions.

Bastian Koppelmann (15):
  target-tricore: Add target stubs and qom-cpu
  target-tricore: Add board for systemmode
  target-tricore: Add softmmu support
  target-tricore: Add initialization for translation and activate target
  target-tricore: Add masks and opcodes for decoding
  target-tricore: Add instructions of SRC opcode format
  target-tricore: Add instructions of SRR opcode format
  target-tricore: Add instructions of SSR opcode format
  target-tricore: Add instructions of SRRS and SLRO opcode format
  target-tricore: Add instructions of SB opcode format
  target-tricore: Add instructions of SBC and SBRN opcode format
  target-tricore: Add instructions of SBR opcode format
  target-tricore: Add instructions of SC opcode format
  target-tricore: Add instructions of SLR, SSRO and SRO opcode format
  target-tricore: Add instructions of SR opcode format

 arch_init.c                         |    2 +
 configure                           |    5 +
 cpu-exec.c                          |   11 +-
 cpus.c                              |    6 +
 default-configs/tricore-softmmu.mak |    3 +
 hw/tricore/Makefile.objs            |    1 +
 hw/tricore/tricore_testboard.c      |  130 ++++
 include/elf.h                       |    2 +
 include/hw/tricore/tricore.h        |   54 ++
 include/sysemu/arch_init.h          |    1 +
 target-tricore/Makefile.objs        |    1 +
 target-tricore/cpu-qom.h            |   71 ++
 target-tricore/cpu.c                |  121 +++
 target-tricore/cpu.h                |  372 +++++++++
 target-tricore/helper.c             |   88 +++
 target-tricore/helper.h             |   26 +
 target-tricore/op_helper.c          |  404 ++++++++++
 target-tricore/translate.c          | 1106 +++++++++++++++++++++++++++
 target-tricore/translate_init.c     |   51 ++
 target-tricore/tricore-defs.h       |   28 +
 target-tricore/tricore-opcodes.h    | 1410 +++++++++++++++++++++++++++++++++++
 21 files changed, 3892 insertions(+), 1 deletion(-)
 create mode 100644 default-configs/tricore-softmmu.mak
 create mode 100644 hw/tricore/Makefile.objs
 create mode 100644 hw/tricore/tricore_testboard.c
 create mode 100644 include/hw/tricore/tricore.h
 create mode 100644 target-tricore/Makefile.objs
 create mode 100644 target-tricore/cpu-qom.h
 create mode 100644 target-tricore/cpu.c
 create mode 100644 target-tricore/cpu.h
 create mode 100644 target-tricore/helper.c
 create mode 100644 target-tricore/helper.h
 create mode 100644 target-tricore/op_helper.c
 create mode 100644 target-tricore/translate.c
 create mode 100644 target-tricore/translate_init.c
 create mode 100644 target-tricore/tricore-defs.h
 create mode 100644 target-tricore/tricore-opcodes.h

--
2.0.1




reply via email to

[Prev in Thread] Current Thread [Next in Thread]