[PATCH] D80512: [MC] Changes to help improve target specific symbol disassembly

Ronak Chauhan via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Mon May 25 03:10:43 PDT 2020


rochauha created this revision.
rochauha added reviewers: scott.linder, t-tye, sunfish, arsenm.
Herald added subscribers: llvm-commits, rupprecht, MaskRay, aheejin, hiraditya, jgravelle-google, sbc100, tpr, wdng, dschuff.
Herald added a reviewer: jhenderson.
Herald added a reviewer: MaskRay.
Herald added a project: LLVM.
rochauha edited the summary of this revision.

This commit slightly modifies the MCDisassembler, and llvm-objdump to allow targets to also decode entire symbols.

WebAssembly uses the onSymbolStart hook it to decode preludes. WebAssembly partially
disassembles the symbol in its target specific way; and then falls back to the normal 
flow of llvm-objdump.

AMDGPU needs it to decode kernel descriptors entirely, and move to the next symbol.

This commit is to split the above task into 2.

- Changes to llvm-objdump and MC-layer without breaking WebAssembly code [ this commit ]
- AMDGPU's implementation of onSymbolStart that decodes kernel descriptors. [ will make a review for this soon ]

PS:
The last 6 bytes of AMDGPU kernel descriptor are reserved and hence 0.
Right now 4 bytes of it are trimmed in llvm-objdump, which makes the kernel descriptor invalid.
I have commented out those AMDGPU specific parts in this commit.
The nop-data.ll test failure in AMDGPU tests is because of this.


Repository:
  rG LLVM Github Monorepo

https://reviews.llvm.org/D80512

Files:
  llvm/include/llvm/MC/MCDisassembler/MCDisassembler.h
  llvm/lib/MC/MCDisassembler/MCDisassembler.cpp
  llvm/lib/Target/WebAssembly/Disassembler/WebAssemblyDisassembler.cpp
  llvm/tools/llvm-objdump/llvm-objdump.cpp

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D80512.265986.patch
Type: text/x-patch
Size: 11301 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20200525/fb7896ac/attachment-0001.bin>


More information about the llvm-commits mailing list