mirror of
https://github.com/mborgerson/xemu.git
synced 2026-03-14 06:54:42 +00:00
Add emulation of MIPS' CRC32 (Cyclic Redundancy Check) instructions.
Reuse zlib crc32() and Linux crc32c().
Corresponding disassembly has been added in commit 99029be1c2
("target/mips: Add implementation of GINVT instruction").
Signed-off-by: Yongbok Kim <yongbok.kim@mips.com>
Signed-off-by: Aleksandar Markovic <amarkovic@wavecomp.com>
Signed-off-by: Aleksandar Rakic <aleksandar.rakic@htecgroup.com>
Reviewed-by: Aleksandar Rikalo <arikalo@gmail.com>
Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Message-ID: <PA4PR09MB486489692D843DDFC25F3CF1846B2@PA4PR09MB4864.eurprd09.prod.outlook.com>
55 lines
2.2 KiB
Plaintext
55 lines
2.2 KiB
Plaintext
# MIPS32 Release 6 instruction set
|
|
#
|
|
# Copyright (C) 2020 Philippe Mathieu-Daudé
|
|
#
|
|
# SPDX-License-Identifier: LGPL-2.1-or-later
|
|
#
|
|
# Reference:
|
|
#
|
|
# MIPS Architecture for Programmers Volume II-A
|
|
# The MIPS32 Instruction Set Reference Manual, Revision 6.06
|
|
# (Document Number: MD00086-2B-MIPS32BIS-AFP-06.06)
|
|
#
|
|
# MIPS Architecture for Programmers Volume II-A
|
|
# The MIPS64 Instruction Set Reference Manual, Revision 6.06
|
|
# (Document Number: MD00087-2B-MIPS64BIS-AFP-6.06)
|
|
|
|
&r rs rt rd sa
|
|
|
|
&special3_crc rs rt c sz
|
|
|
|
@lsa ...... rs:5 rt:5 rd:5 ... sa:2 ...... &r
|
|
@crc32 ...... rs:5 rt:5 ..... c:3 sz:2 ...... &special3_crc
|
|
|
|
LSA 000000 ..... ..... ..... 000 .. 000101 @lsa
|
|
DLSA 000000 ..... ..... ..... 000 .. 010101 @lsa
|
|
|
|
CRC32 011111 ..... ..... 00000 ... .. 001111 @crc32
|
|
|
|
REMOVED 010011 ----- ----- ----- ----- ------ # COP1X (COP3)
|
|
|
|
REMOVED 011100 ----- ----- ----- ----- ------ # SPECIAL2
|
|
|
|
REMOVED 011010 ----- ----- ---------------- # LDL
|
|
REMOVED 011011 ----- ----- ---------------- # LDR
|
|
|
|
REMOVED 011111 ----- ----- ---------- 011001 # LWLE
|
|
REMOVED 011111 ----- ----- ---------- 011010 # LWRE
|
|
REMOVED 011111 ----- ----- ---------- 100001 # SWLE
|
|
REMOVED 011111 ----- ----- ---------- 100010 # SWRE
|
|
|
|
REMOVED 100010 ----- ----- ---------------- # LWL
|
|
REMOVED 100110 ----- ----- ---------------- # LWR
|
|
REMOVED 101010 ----- ----- ---------------- # SWL
|
|
REMOVED 101100 ----- ----- ---------------- # SDL
|
|
REMOVED 101101 ----- ----- ---------------- # SDR
|
|
REMOVED 101110 ----- ----- ---------------- # SWR
|
|
|
|
REMOVED 101111 ----- ----- ---------------- # CACHE
|
|
|
|
REMOVED 110000 ----- ----- ---------------- # LL
|
|
REMOVED 110011 ----- ----- ---------------- # PREF
|
|
REMOVED 110100 ----- ----- ---------------- # LLD
|
|
REMOVED 111000 ----- ----- ---------------- # SC
|
|
REMOVED 111100 ----- ----- ---------------- # SCD
|