Xiaojuan Yang
587858ed0d
hw/loongarch: Rename file 'loongson3.XXX' to 'virt.XXX'
...
1. Rename 'loongson3.c' to 'virt.c' and change the meson.build file.
2. Rename 'loongson3.rst' to 'virt.rst'.
Signed-off-by: Xiaojuan Yang <yangxiaojuan@loongson.cn >
Message-Id: <20220729073018.27037-2-yangxiaojuan@loongson.cn >
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
2022-07-29 15:07:55 -07:00
Xiaojuan Yang
fda3f15b00
hw/loongarch: Add fdt support
...
Add LoongArch flatted device tree, adding cpu device node, firmware cfg node,
pcie node into it, and create fdt rom memory region. Now fdt info is not
full since only uefi bios uses fdt, linux kernel does not use fdt.
Loongarch Linux kernel uses acpi table which is full in qemu virt
machine.
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Signed-off-by: Xiaojuan Yang <yangxiaojuan@loongson.cn >
Message-Id: <20220712083206.4187715-7-yangxiaojuan@loongson.cn >
[rth: Set TARGET_NEED_FDT, add fdt to meson.build]
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
2022-07-19 22:55:10 +05:30
Song Gao
9fad2071e8
target/loongarch: Fix float_convd/float_convs test failing
...
We should result zero when exception is invalid and operation is nan
Signed-off-by: Song Gao <gaosong@loongson.cn >
Message-Id: <20220716085426.3098060-4-gaosong@loongson.cn >
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
2022-07-19 21:53:58 +05:30
Xiaojuan Yang
fa90456f78
target/loongarch/cpu: Fix cpucfg default value
...
We should config cpucfg[20] to set value for the scache's ways, sets,
and size arguments when loongarch cpu init. However, the old code
wirte 'sets argument' twice, so we change one of them to 'size argument'.
Signed-off-by: Xiaojuan Yang <yangxiaojuan@loongson.cn >
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Message-Id: <20220715064829.1521482-1-yangxiaojuan@loongson.cn >
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
2022-07-19 21:53:58 +05:30
Xiaojuan Yang
064357041d
target/loongarch/op_helper: Fix coverity cond_at_most error
...
The boundary size of cpucfg array should be 0 to ARRAY_SIZE(cpucfg)-1.
So, using index bigger than max boundary to access cpucfg[] must be
forbidden.
Fix coverity CID: 1489760
Signed-off-by: Xiaojuan Yang <yangxiaojuan@loongson.cn >
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Message-Id: <20220715060740.1500628-6-yangxiaojuan@loongson.cn >
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
2022-07-19 21:53:58 +05:30
Xiaojuan Yang
2b3ef8e5c6
target/loongarch/tlb_helper: Fix coverity integer overflow error
...
Replace '1 << shift' with 'MAKE_64BIT_MASK(shift, 1)' to fix
unintentional integer overflow errors in tlb_helper file.
Fix coverity CID: 1489759 1489762
Signed-off-by: Xiaojuan Yang <yangxiaojuan@loongson.cn >
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Message-Id: <20220715060740.1500628-5-yangxiaojuan@loongson.cn >
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
2022-07-19 21:53:58 +05:30
Xiaojuan Yang
e4ad16f492
target/loongarch/cpu: Fix coverity errors about excp_names
...
Fix out-of-bounds errors when access excp_names[] array. the valid
boundary size of excp_names should be 0 to ARRAY_SIZE(excp_names)-1.
However, the general code do not consider the max boundary.
Fix coverity CID: 1489758
Signed-off-by: Xiaojuan Yang <yangxiaojuan@loongson.cn >
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Message-Id: <20220715060740.1500628-4-yangxiaojuan@loongson.cn >
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
2022-07-19 21:53:58 +05:30
Xiaojuan Yang
c254f7affe
target/loongarch: Fix loongarch_cpu_class_by_name
...
The cpu_model argument may already have the '-loongarch-cpu' suffix,
e.g. when using the default for the LS7A1000 machine. If that fails,
try again with the suffix. Validate that the object created by the
function is derived from the proper base class.
Signed-off-by: Xiaojuan Yang <yangxiaojuan@loongson.cn >
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Message-Id: <20220715060740.1500628-2-yangxiaojuan@loongson.cn >
[rth: Try without and then with the suffix, to avoid testsuite breakage.]
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
2022-07-19 21:53:58 +05:30
Song Gao
3517fb7267
target/loongarch: Clean up tlb when cpu reset
...
We should make sure that tlb is clean when cpu reset.
Signed-off-by: Song Gao <gaosong@loongson.cn >
Message-Id: <20220705070950.2364243-1-gaosong@loongson.cn >
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
2022-07-05 16:17:53 +05:30
Xiaojuan Yang
eb1e9ff8bb
target/loongarch: Add lock when writing timer clear reg
...
There is such error info when running linux kernel:
tcg_handle_interrupt: assertion failed: (qemu_mutex_iothread_locked()).
calling stack:
#0 in raise () at /lib64/libc.so.6
#1 in abort () at /lib64/libc.so.6
#2 in g_assertion_message_expr.cold () at /lib64/libglib-2.0.so.0
#3 in g_assertion_message_expr () at /lib64/libglib-2.0.so.0
#4 in tcg_handle_interrupt (cpu=0x632000030800, mask=2) at ../accel/tcg/tcg-accel-ops.c:79
#5 in cpu_interrupt (cpu=0x632000030800, mask=2) at ../softmmu/cpus.c:248
#6 in loongarch_cpu_set_irq (opaque=0x632000030800, irq=11, level=0)
at ../target/loongarch/cpu.c:100
#7 in helper_csrwr_ticlr (env=0x632000039440, val=1) at ../target/loongarch/csr_helper.c:85
#8 in code_gen_buffer ()
#9 in cpu_tb_exec (cpu=0x632000030800, itb=0x7fff946ac280, tb_exit=0x7ffe4fcb6c30)
at ../accel/tcg/cpu-exec.c:358
Add mutex iothread lock around loongarch_cpu_set_irq in csrwr_ticlr() to
fix the bug.
Signed-off-by: Xiaojuan Yang <yangxiaojuan@loongson.cn >
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Message-Id: <20220701093407.2150607-10-yangxiaojuan@loongson.cn >
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
2022-07-04 11:08:58 +05:30
Xiaojuan Yang
4623367697
target/loongarch: Fix the meaning of ECFG reg's VS field
...
By the manual of LoongArch CSR, the VS field(18:16 bits) of
ECFG reg means that the number of instructions between each
exception entry is 2^VS.
Signed-off-by: Xiaojuan Yang <yangxiaojuan@loongson.cn >
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Message-Id: <20220701093407.2150607-9-yangxiaojuan@loongson.cn >
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
2022-07-04 11:08:58 +05:30
Song Gao
227e73c986
target/loongarch: Update README
...
Add linux-user emulation introduction
Signed-off-by: Song Gao <gaosong@loongson.cn >
Signed-off-by: Xiaojuan Yang <yangxiaojuan@loongson.cn >
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Message-Id: <20220624031049.1716097-14-gaosong@loongson.cn >
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
2022-07-04 11:08:58 +05:30
Song Gao
0093b9a5ee
target/loongarch: Adjust functions and structure to support user-mode
...
Some functions and member of the structure are different with softmmu-mode
So we need adjust them to support user-mode.
Signed-off-by: Song Gao <gaosong@loongson.cn >
Signed-off-by: Xiaojuan Yang <yangxiaojuan@loongson.cn >
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Message-Id: <20220624031049.1716097-12-gaosong@loongson.cn >
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
2022-07-04 11:08:58 +05:30
Song Gao
9bc92b5013
target/loongarch: remove unused include hw/loader.h
...
Signed-off-by: Song Gao <gaosong@loongson.cn >
Signed-off-by: Xiaojuan Yang <yangxiaojuan@loongson.cn >
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Message-Id: <20220624031049.1716097-11-gaosong@loongson.cn >
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
2022-07-04 11:08:58 +05:30
Song Gao
7fe7eea6ff
target/loongarch: Fix helper_asrtle_d/asrtgt_d raise wrong exception
...
Raise EXCCODE_BCE instead of EXCCODE_ADEM for helper_asrtle_d/asrtgt_d.
Signed-off-by: Song Gao <gaosong@loongson.cn >
Signed-off-by: Xiaojuan Yang <yangxiaojuan@loongson.cn >
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Message-Id: <20220624031049.1716097-10-gaosong@loongson.cn >
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
2022-07-04 11:08:58 +05:30
Song Gao
7d552f0e0a
target/loongarch: Fix missing update CSR_BADV
...
loongarch_cpu_do_interrupt() should update CSR_BADV for some EXCCODE.
Signed-off-by: Song Gao <gaosong@loongson.cn >
Signed-off-by: Xiaojuan Yang <yangxiaojuan@loongson.cn >
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Message-Id: <20220624031049.1716097-9-gaosong@loongson.cn >
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
2022-07-04 11:08:58 +05:30
Song Gao
fffca8f227
target/loongarch: remove badaddr from CPULoongArch
...
We can use CSR_BADV to replace badaddr.
Signed-off-by: Song Gao <gaosong@loongson.cn >
Signed-off-by: Xiaojuan Yang <yangxiaojuan@loongson.cn >
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Message-Id: <20220624031049.1716097-8-gaosong@loongson.cn >
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
2022-07-04 11:08:58 +05:30
Xiaojuan Yang
ca61e75071
target/loongarch: Add gdb support.
...
Signed-off-by: Xiaojuan Yang <yangxiaojuan@loongson.cn >
Signed-off-by: Song Gao <gaosong@loongson.cn >
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Message-Id: <20220606124333.2060567-42-yangxiaojuan@loongson.cn >
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
2022-06-06 18:14:13 +00:00
Xiaojuan Yang
6a6f26f481
hw/loongarch: Add LoongArch load elf function.
...
Signed-off-by: Xiaojuan Yang <yangxiaojuan@loongson.cn >
Signed-off-by: Song Gao <gaosong@loongson.cn >
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Message-Id: <20220606124333.2060567-40-yangxiaojuan@loongson.cn >
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
2022-06-06 18:14:13 +00:00
Xiaojuan Yang
a8a506c390
hw/loongarch: Add support loongson3 virt machine type.
...
Emulate a 3A5000 board use the new loongarch instruction.
3A5000 belongs to the Loongson3 series processors.
The board consists of a 3A5000 cpu model and the virt
bridge. The host 3A5000 board is really complicated and
contains many functions.Now for the tcg softmmu mode
only part functions are emulated.
More detailed info you can see
https://github.com/loongson/LoongArch-Documentation
Signed-off-by: Xiaojuan Yang <yangxiaojuan@loongson.cn >
Signed-off-by: Song Gao <gaosong@loongson.cn >
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Message-Id: <20220606124333.2060567-31-yangxiaojuan@loongson.cn >
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
2022-06-06 18:09:03 +00:00
Xiaojuan Yang
f9bf50745f
target/loongarch: Add timer related instructions support.
...
This includes:
-RDTIME{L/H}.W
-RDTIME.D
Signed-off-by: Xiaojuan Yang <yangxiaojuan@loongson.cn >
Signed-off-by: Song Gao <gaosong@loongson.cn >
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Message-Id: <20220606124333.2060567-30-yangxiaojuan@loongson.cn >
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
2022-06-06 18:09:03 +00:00
Xiaojuan Yang
d2cba6f7ce
target/loongarch: Add other core instructions support
...
This includes:
-CACOP
-LDDIR
-LDPTE
-ERTN
-DBCL
-IDLE
Signed-off-by: Xiaojuan Yang <yangxiaojuan@loongson.cn >
Signed-off-by: Song Gao <gaosong@loongson.cn >
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Message-Id: <20220606124333.2060567-29-yangxiaojuan@loongson.cn >
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
2022-06-06 18:09:03 +00:00
Xiaojuan Yang
fcbbeb8ecd
target/loongarch: Add TLB instruction support
...
This includes:
- TLBSRCH
- TLBRD
- TLBWR
- TLBFILL
- TLBCLR
- TLBFLUSH
- INVTLB
Signed-off-by: Xiaojuan Yang <yangxiaojuan@loongson.cn >
Signed-off-by: Song Gao <gaosong@loongson.cn >
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Message-Id: <20220606124333.2060567-28-yangxiaojuan@loongson.cn >
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
2022-06-06 18:09:03 +00:00
Xiaojuan Yang
f84a2aacf5
target/loongarch: Add LoongArch IOCSR instruction
...
This includes:
- IOCSR{RD/WR}.{B/H/W/D}
Signed-off-by: Xiaojuan Yang <yangxiaojuan@loongson.cn >
Signed-off-by: Song Gao <gaosong@loongson.cn >
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Message-Id: <20220606124333.2060567-27-yangxiaojuan@loongson.cn >
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
2022-06-06 18:09:03 +00:00
Xiaojuan Yang
5b1dedfe84
target/loongarch: Add LoongArch CSR instruction
...
This includes:
- CSRRD
- CSRWR
- CSRXCHG
Signed-off-by: Xiaojuan Yang <yangxiaojuan@loongson.cn >
Signed-off-by: Song Gao <gaosong@loongson.cn >
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Message-Id: <20220606124333.2060567-26-yangxiaojuan@loongson.cn >
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
2022-06-06 18:09:03 +00:00
Xiaojuan Yang
dd615fa48d
target/loongarch: Add constant timer support
...
Signed-off-by: Xiaojuan Yang <yangxiaojuan@loongson.cn >
Signed-off-by: Song Gao <gaosong@loongson.cn >
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Message-Id: <20220606124333.2060567-25-yangxiaojuan@loongson.cn >
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
2022-06-06 18:09:03 +00:00
Xiaojuan Yang
f757a2cd69
target/loongarch: Add LoongArch interrupt and exception handle
...
Signed-off-by: Xiaojuan Yang <yangxiaojuan@loongson.cn >
Signed-off-by: Song Gao <gaosong@loongson.cn >
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Message-Id: <20220606124333.2060567-24-yangxiaojuan@loongson.cn >
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
2022-06-06 18:09:03 +00:00
Xiaojuan Yang
7e1c521e2a
target/loongarch: Add MMU support for LoongArch CPU.
...
Signed-off-by: Xiaojuan Yang <yangxiaojuan@loongson.cn >
Signed-off-by: Song Gao <gaosong@loongson.cn >
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Message-Id: <20220606124333.2060567-23-yangxiaojuan@loongson.cn >
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
2022-06-06 18:09:03 +00:00
Xiaojuan Yang
425876f5d8
target/loongarch: Implement qmp_query_cpu_definitions()
...
Signed-off-by: Xiaojuan Yang <yangxiaojuan@loongson.cn >
Signed-off-by: Song Gao <gaosong@loongson.cn >
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Message-Id: <20220606124333.2060567-22-yangxiaojuan@loongson.cn >
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
2022-06-06 18:09:03 +00:00
Xiaojuan Yang
67ebd42a48
target/loongarch: Add basic vmstate description of CPU.
...
Signed-off-by: Xiaojuan Yang <yangxiaojuan@loongson.cn >
Signed-off-by: Song Gao <gaosong@loongson.cn >
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Message-Id: <20220606124333.2060567-21-yangxiaojuan@loongson.cn >
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
2022-06-06 18:09:03 +00:00
Xiaojuan Yang
398cecb9c3
target/loongarch: Add CSRs definition
...
Signed-off-by: Xiaojuan Yang <yangxiaojuan@loongson.cn >
Signed-off-by: Song Gao <gaosong@loongson.cn >
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Message-Id: <20220606124333.2060567-20-yangxiaojuan@loongson.cn >
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
2022-06-06 18:09:03 +00:00
Xiaojuan Yang
d88b51dc26
target/loongarch: Add system emulation introduction
...
Signed-off-by: Xiaojuan Yang <yangxiaojuan@loongson.cn >
Signed-off-by: Song Gao <gaosong@loongson.cn >
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Message-Id: <20220606124333.2060567-19-yangxiaojuan@loongson.cn >
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
2022-06-06 18:09:03 +00:00
Song Gao
14f2b0b741
target/loongarch: Add target build suport
...
Signed-off-by: Song Gao <gaosong@loongson.cn >
Signed-off-by: Xiaojuan Yang <yangxiaojuan@loongson.cn >
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org >
Message-Id: <20220606124333.2060567-18-yangxiaojuan@loongson.cn >
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
2022-06-06 18:09:03 +00:00
Song Gao
aae1746c72
target/loongarch: Add disassembler
...
This patch adds support for disassembling via option '-d in_asm'.
Signed-off-by: Song Gao <gaosong@loongson.cn >
Signed-off-by: Xiaojuan Yang <yangxiaojuan@loongson.cn >
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Message-Id: <20220606124333.2060567-17-yangxiaojuan@loongson.cn >
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
2022-06-06 18:09:03 +00:00
Song Gao
ee86bd58b8
target/loongarch: Add branch instruction translation
...
This includes:
- BEQ, BNE, BLT[U], BGE[U]
- BEQZ, BNEZ
- B
- BL
- JIRL
- BCEQZ, BCNEZ
Signed-off-by: Song Gao <gaosong@loongson.cn >
Signed-off-by: Xiaojuan Yang <yangxiaojuan@loongson.cn >
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Message-Id: <20220606124333.2060567-16-yangxiaojuan@loongson.cn >
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
2022-06-06 18:09:03 +00:00
Song Gao
e616bdfd01
target/loongarch: Add floating point load/store instruction translation
...
This includes:
- FLD.{S/D}, FST.{S/D}
- FLDX.{S/D}, FSTX.{S/D}
- FLD{GT/LE}.{S/D}, FST{GT/LE}.{S/D}
Signed-off-by: Song Gao <gaosong@loongson.cn >
Signed-off-by: Xiaojuan Yang <yangxiaojuan@loongson.cn >
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Message-Id: <20220606124333.2060567-15-yangxiaojuan@loongson.cn >
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
2022-06-06 18:09:03 +00:00
Song Gao
b7dabd5624
target/loongarch: Add floating point move instruction translation
...
This includes:
- FMOV.{S/D}
- FSEL
- MOVGR2FR.{W/D}, MOVGR2FRH.W
- MOVFR2GR.{S/D}, MOVFRH2GR.S
- MOVGR2FCSR, MOVFCSR2GR
- MOVFR2CF, MOVCF2FR
- MOVGR2CF, MOVCF2GR
Signed-off-by: Song Gao <gaosong@loongson.cn >
Signed-off-by: Xiaojuan Yang <yangxiaojuan@loongson.cn >
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Message-Id: <20220606124333.2060567-14-yangxiaojuan@loongson.cn >
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
2022-06-06 18:09:03 +00:00
Song Gao
7c1f88703d
target/loongarch: Add floating point conversion instruction translation
...
This includes:
- FCVT.S.D, FCVT.D.S
- FFINT.{S/D}.{W/L}, FTINT.{W/L}.{S/D}
- FTINT{RM/RP/RZ/RNE}.{W/L}.{S/D}
- FRINT.{S/D}
Signed-off-by: Song Gao <gaosong@loongson.cn >
Signed-off-by: Xiaojuan Yang <yangxiaojuan@loongson.cn >
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Message-Id: <20220606124333.2060567-13-yangxiaojuan@loongson.cn >
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
2022-06-06 18:09:03 +00:00
Song Gao
9b7410763a
target/loongarch: Add floating point comparison instruction translation
...
This includes:
- FCMP.cond.{S/D}
Signed-off-by: Song Gao <gaosong@loongson.cn >
Signed-off-by: Xiaojuan Yang <yangxiaojuan@loongson.cn >
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Message-Id: <20220606124333.2060567-12-yangxiaojuan@loongson.cn >
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
2022-06-06 18:09:03 +00:00
Song Gao
d578ca6cbb
target/loongarch: Add floating point arithmetic instruction translation
...
This includes:
- F{ADD/SUB/MUL/DIV}.{S/D}
- F{MADD/MSUB/NMADD/NMSUB}.{S/D}
- F{MAX/MIN}.{S/D}
- F{MAXA/MINA}.{S/D}
- F{ABS/NEG}.{S/D}
- F{SQRT/RECIP/RSQRT}.{S/D}
- F{SCALEB/LOGB/COPYSIGN}.{S/D}
- FCLASS.{S/D}
Signed-off-by: Song Gao <gaosong@loongson.cn >
Signed-off-by: Xiaojuan Yang <yangxiaojuan@loongson.cn >
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Message-Id: <20220606124333.2060567-11-yangxiaojuan@loongson.cn >
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
2022-06-06 18:09:03 +00:00
Song Gao
8708a04a61
target/loongarch: Add fixed point extra instruction translation
...
This includes:
- CRC[C].W.{B/H/W/D}.W
- SYSCALL
- BREAK
- ASRT{LE/GT}.D
- RDTIME{L/H}.W, RDTIME.D
- CPUCFG
Signed-off-by: Song Gao <gaosong@loongson.cn >
Signed-off-by: Xiaojuan Yang <yangxiaojuan@loongson.cn >
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Message-Id: <20220606124333.2060567-10-yangxiaojuan@loongson.cn >
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
2022-06-06 18:09:03 +00:00
Song Gao
94b02d57b0
target/loongarch: Add fixed point atomic instruction translation
...
This includes:
- LL.{W/D}, SC.{W/D}
- AM{SWAP/ADD/AND/OR/XOR/MAX/MIN}[_DB].{W/D}
- AM{MAX/MIN}[_DB].{WU/DU}
Signed-off-by: Song Gao <gaosong@loongson.cn >
Signed-off-by: Xiaojuan Yang <yangxiaojuan@loongson.cn >
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Message-Id: <20220606124333.2060567-9-yangxiaojuan@loongson.cn >
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
2022-06-06 18:09:03 +00:00
Song Gao
bb79174d4e
target/loongarch: Add fixed point load/store instruction translation
...
This includes:
- LD.{B[U]/H[U]/W[U]/D}, ST.{B/H/W/D}
- LDX.{B[U]/H[U]/W[U]/D}, STX.{B/H/W/D}
- LDPTR.{W/D}, STPTR.{W/D}
- PRELD
- LD{GT/LE}.{B/H/W/D}, ST{GT/LE}.{B/H/W/D}
- DBAR, IBAR
Signed-off-by: Song Gao <gaosong@loongson.cn >
Signed-off-by: Xiaojuan Yang <yangxiaojuan@loongson.cn >
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Message-Id: <20220606124333.2060567-8-yangxiaojuan@loongson.cn >
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
2022-06-06 18:09:03 +00:00
Song Gao
ad08cb3f97
target/loongarch: Add fixed point bit instruction translation
...
This includes:
- EXT.W.{B/H}
- CL{O/Z}.{W/D}, CT{O/Z}.{W/D}
- BYTEPICK.{W/D}
- REVB.{2H/4H/2W/D}
- REVH.{2W/D}
- BITREV.{4B/8B}, BITREV.{W/D}
- BSTRINS.{W/D}, BSTRPICK.{W/D}
- MASKEQZ, MASKNEZ
Signed-off-by: Song Gao <gaosong@loongson.cn >
Signed-off-by: Xiaojuan Yang <yangxiaojuan@loongson.cn >
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Message-Id: <20220606124333.2060567-7-yangxiaojuan@loongson.cn >
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
2022-06-06 18:09:03 +00:00
Song Gao
63cfcd47d7
target/loongarch: Add fixed point shift instruction translation
...
This includes:
- SLL.W, SRL.W, SRA.W, ROTR.W
- SLLI.W, SRLI.W, SRAI.W, ROTRI.W
- SLL.D, SRL.D, SRA.D, ROTR.D
- SLLI.D, SRLI.D, SRAI.D, ROTRI.D
Signed-off-by: Song Gao <gaosong@loongson.cn >
Signed-off-by: Xiaojuan Yang <yangxiaojuan@loongson.cn >
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Message-Id: <20220606124333.2060567-6-yangxiaojuan@loongson.cn >
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
2022-06-06 18:09:03 +00:00
Song Gao
143d6785ef
target/loongarch: Add fixed point arithmetic instruction translation
...
This includes:
- ADD.{W/D}, SUB.{W/D}
- ADDI.{W/D}, ADDU16ID
- ALSL.{W[U]/D}
- LU12I.W, LU32I.D LU52I.D
- SLT[U], SLT[U]I
- PCADDI, PCADDU12I, PCADDU18I, PCALAU12I
- AND, OR, NOR, XOR, ANDN, ORN
- MUL.{W/D}, MULH.{W[U]/D[U]}
- MULW.D.W[U]
- DIV.{W[U]/D[U]}, MOD.{W[U]/D[U]}
- ANDI, ORI, XORI
Signed-off-by: Song Gao <gaosong@loongson.cn >
Signed-off-by: Xiaojuan Yang <yangxiaojuan@loongson.cn >
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Message-Id: <20220606124333.2060567-5-yangxiaojuan@loongson.cn >
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
2022-06-06 18:09:03 +00:00
Song Gao
f8da88d78f
target/loongarch: Add main translation routines
...
This patch adds main translation routines and
basic functions for translation.
Signed-off-by: Song Gao <gaosong@loongson.cn >
Signed-off-by: Xiaojuan Yang <yangxiaojuan@loongson.cn >
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Message-Id: <20220606124333.2060567-4-yangxiaojuan@loongson.cn >
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
2022-06-06 18:09:03 +00:00
Song Gao
228021f05e
target/loongarch: Add core definition
...
This patch adds target state header, target definitions
and initialization routines.
Signed-off-by: Song Gao <gaosong@loongson.cn >
Signed-off-by: Xiaojuan Yang <yangxiaojuan@loongson.cn >
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org >
Message-Id: <20220606124333.2060567-3-yangxiaojuan@loongson.cn >
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
2022-06-06 18:09:03 +00:00
Song Gao
64baad62cd
target/loongarch: Add README
...
This patch gives an introduction to the LoongArch target.
Signed-off-by: Song Gao <gaosong@loongson.cn >
Signed-off-by: Xiaojuan Yang <yangxiaojuan@loongson.cn >
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Message-Id: <20220606124333.2060567-2-yangxiaojuan@loongson.cn >
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
2022-06-06 18:09:03 +00:00