Richard Henderson
306c872103
accel/tcg: Add pc and host_pc params to gen_intermediate_code
...
Pass these along to translator_loop -- pc may be used instead
of tb->pc, and host_pc is currently unused. Adjust all targets
at one time.
Acked-by: Alistair Francis <alistair.francis@wdc.com >
Acked-by: Ilya Leoshkevich <iii@linux.ibm.com >
Tested-by: Ilya Leoshkevich <iii@linux.ibm.com >
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
2022-09-06 08:04:26 +01:00
Xiaojuan Yang
1f90ce64fc
docs/system/loongarch: Update the LoongArch document
...
1. Add some information about how to boot the LoongArch virt
machine by uefi bios and linux kernel and how to access the
source code or binary file.
2. Move the explanation of LoongArch system emulation in the
target/loongarch/README to docs/system/loongarch/loongson3.rst
Signed-off-by: Xiaojuan Yang <yangxiaojuan@loongson.cn >
Reviewed-by: Song Gao <gaosong@loongson.cn >
Message-Id: <20220812091957.3338126-1-yangxiaojuan@loongson.cn >
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
2022-08-13 04:45:03 -07:00
Richard Henderson
10dcb08b03
target/loongarch: Remove cpu_fcsr0
...
All of the fpu operations are defined with TCG_CALL_NO_WG, but they
all modify FCSR0. The most efficient way to fix this is to remove
cpu_fcsr0, and instead use explicit load and store operations for the
two instructions that manipulate that value.
Acked-by: Qi Hu <huqi@loongson.cn >
Reviewed-by: Song Gao <gaosong@loongson.cn >
Reported-by: Feiyang Chen <chenfeiyang@loongson.cn >
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
2022-08-08 19:42:53 -07:00
Song Gao
2f149c759f
target/loongarch: Update gdb_set_fpu() and gdb_get_fpu()
...
GDB LoongArch fpu use fcc register, update gdb_set_fpu()
and gdb_get_fpu() to match it.
Signed-off-by: Song Gao <gaosong@loongson.cn >
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Acked-by: Alex Bennée <alex.bennee@linaro.org >
Message-Id: <20220805033523.1416837-6-gaosong@loongson.cn >
2022-08-05 10:02:40 -07:00
Song Gao
d182c39000
target/loongarch: Update loongarch-fpu.xml
...
Rename loongarch-fpu64.xml to loongarch-fpu.xml and update
loongarch-fpu.xml to match upstream GDB [1]
[1]:https://github.com/bminor/binutils-gdb/blob/master/gdb/features/loongarch/fpu.xml
Signed-off-by: Song Gao <gaosong@loongson.cn >
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Acked-by: Alex Bennée <alex.bennee@linaro.org >
Message-Id: <20220805033523.1416837-5-gaosong@loongson.cn >
2022-08-05 10:02:40 -07:00
Song Gao
cd8ef0ed3b
target/loongarch: add gdb_arch_name()
...
Matches bfd/cpu-loongarch.c, bfd_loongarch_arch.
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Signed-off-by: Song Gao <gaosong@loongson.cn >
Acked-by: Alex Bennée <alex.bennee@linaro.org >
Message-Id: <20220805033523.1416837-3-gaosong@loongson.cn >
2022-08-05 10:02:40 -07:00
Song Gao
1fe8ac3511
target/loongarch: Fix GDB get the wrong pc
...
GDB LoongArch add a register orig_a0, see the base64.xml [1].
We should add the orig_a0 to match the upstream GDB.
[1]: https://github.com/bminor/binutils-gdb/blob/master/gdb/features/loongarch/base64.xml
Signed-off-by: Song Gao <gaosong@loongson.cn >
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Acked-by: Alex Bennée <alex.bennee@linaro.org >
Message-Id: <20220805033523.1416837-2-gaosong@loongson.cn >
2022-08-05 10:02:40 -07:00
Qi Hu
00952d93e0
target/loongarch: Fix macros SET_FPU_* in cpu.h
...
The macros SET_FPU_* are used to set corresponding bits of fcsr.
Unfortunately it forgets to set the result and it causes fcsr's
"CAUSE" never being updated. This patch is to fix this bug.
Signed-off-by: Qi Hu <huqi@loongson.cn >
Reviewed-by: Song Gao <gaosong@loongson.cn >
Message-Id: <20220804132450.314329-1-huqi@loongson.cn >
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
2022-08-05 08:18:30 -07:00
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