Add disassembly support for the following crc32
instructions: crc32b, crc32h, crc32w, crc32x,
crc32cb, crc32ch, crc32cw, crc32cx
Details
Details
Diff Detail
Diff Detail
- Repository
- rG FreeBSD src repository
- Lint
Lint Passed - Unit
No Test Coverage - Build Status
Buildable 55428 Build 52317: arc lint + arc unit
Event Timeline
sys/arm64/arm64/disassem.c | ||
---|---|---|
780–789 | I don't think it is a bad choice to add a new type, but it seems to me like these definitions would work with TYPE_01, no? |
sys/arm64/arm64/disassem.c | ||
---|---|---|
780–789 | Yes, you are right for instructions crc32b, crc32h, crc32w, crc32cb, crc32ch, crc32cw we can use TYPE_01, CRC32CB (sf == 0 && sz == 00) CRC32CB <Wd>, <Wn>, <Wm> CRC32CH (sf == 0 && sz == 01) CRC32CH <Wd>, <Wn>, <Wm> CRC32CW (sf == 0 && sz == 10) CRC32CW <Wd>, <Wn>, <Wm> So, I changed this to TYPE_01, thanks! However, for crc32x and crc32cx we can't use TYPE_01, since sf==1, it means 64 bit width register, but in destination register and input register we have to print 32 bit width registers and only for source register we print 64 bit width register: CRC32CX (sf == 1 && sz == 11) CRC32CX <Wd>, <Wn>, <Xm> CRC32X (sf == 1 && sz == 11) CRC32X <Wd>, <Wn>, <Xm> Therefore I decided to introduce new type TYPE_06 |