llvm-capstone icon indicating copy to clipboard operation
llvm-capstone copied to clipboard

Add LoongArch support

Open jiegec opened this issue 1 year ago • 3 comments

  • Comment out unsupported code
  • Fill in operands

See https://github.com/capstone-engine/capstone/pull/2349

jiegec avatar May 03 '24 07:05 jiegec

I have rebased on top of auto-sync-18 branch and dropped LoongArch-specific changes under llvm/lib.

jiegec avatar May 03 '24 08:05 jiegec

Using capstone next branch and llvm-capstone auto-sync-18 branch:

INFO:root:Generating Disassembler tables...
DEBUG:root:Generating CCS tables...
DEBUG:root:/home/jiegec/capstone/suite/auto-sync/vendor/llvm_root/build/bin/llvm-tblgen --printerLang=CCS --gen-disassembler -I /home/jiegec/capstone/suite/auto-sync/vendor/llvm_root/llvm/include -I /home/jiegec/capstone/suite/auto-sync/vendor/llvm_root/llvm/lib/Target/LoongArch -o /home/jiegec/capstone/suite/auto-sync/build/llvm_c_inc/LoongArchGenDisassemblerTables.inc /home/jiegec/capstone/suite/auto-sync/vendor/llvm_root/llvm/lib/Target/LoongArch/LoongArch.td
llvm-tblgen: Unknown command line argument '--printerLang=CCS'.  Try: '/home/jiegec/capstone/suite/auto-sync/vendor/llvm_root/build/bin/llvm-tblgen --help'
llvm-tblgen: Did you mean '--print-options=CCS'?
CRITICAL:root:Generation failed
Traceback (most recent call last):
  File "/home/jiegec/capstone/suite/auto-sync/./src/autosync/ASUpdater.py", line 263, in <module>
    Updater.update()
  File "/home/jiegec/capstone/suite/auto-sync/./src/autosync/ASUpdater.py", line 141, in update
    self.inc_generator.generate()
  File "/home/jiegec/capstone/suite/auto-sync/src/autosync/IncGenerator.py", line 101, in generate
    self.gen_incs()
  File "/home/jiegec/capstone/suite/auto-sync/src/autosync/IncGenerator.py", line 177, in gen_incs
    raise e
  File "/home/jiegec/capstone/suite/auto-sync/src/autosync/IncGenerator.py", line 171, in gen_incs
    subprocess.run(
  File "/usr/lib/python3.11/subprocess.py", line 571, in run
    raise CalledProcessError(retcode, process.args,
subprocess.CalledProcessError: Command '['/home/jiegec/capstone/suite/auto-sync/vendor/llvm_root/build/bin/llvm-tblgen', '--printerLang=CCS', '--gen-disassembler', '-I', '/home/jiegec/capstone/suite/auto-sync/vendor/llvm_root/llvm/include', '-I', '/home/jiegec/capstone/suite/auto-sync/vendor/llvm_root/llvm/lib/Target/LoongArch', '-o', '/home/jiegec/capstone/suite/auto-sync/build/llvm_c_inc/LoongArchGenDisassemblerTables.inc', '/home/jiegec/capstone/suite/auto-sync/vendor/llvm_root/llvm/lib/Target/LoongArch/LoongArch.td']' returned non-zero exit status 1.

jiegec avatar May 03 '24 08:05 jiegec

Using capstone next branch and llvm-capstone auto-sync-18 branch:

INFO:root:Generating Disassembler tables...
DEBUG:root:Generating CCS tables...
DEBUG:root:/home/jiegec/capstone/suite/auto-sync/vendor/llvm_root/build/bin/llvm-tblgen --printerLang=CCS --gen-disassembler -I /home/jiegec/capstone/suite/auto-sync/vendor/llvm_root/llvm/include -I /home/jiegec/capstone/suite/auto-sync/vendor/llvm_root/llvm/lib/Target/LoongArch -o /home/jiegec/capstone/suite/auto-sync/build/llvm_c_inc/LoongArchGenDisassemblerTables.inc /home/jiegec/capstone/suite/auto-sync/vendor/llvm_root/llvm/lib/Target/LoongArch/LoongArch.td
llvm-tblgen: Unknown command line argument '--printerLang=CCS'.  Try: '/home/jiegec/capstone/suite/auto-sync/vendor/llvm_root/build/bin/llvm-tblgen --help'
llvm-tblgen: Did you mean '--print-options=CCS'?
CRITICAL:root:Generation failed
Traceback (most recent call last):
  File "/home/jiegec/capstone/suite/auto-sync/./src/autosync/ASUpdater.py", line 263, in <module>
    Updater.update()
  File "/home/jiegec/capstone/suite/auto-sync/./src/autosync/ASUpdater.py", line 141, in update
    self.inc_generator.generate()
  File "/home/jiegec/capstone/suite/auto-sync/src/autosync/IncGenerator.py", line 101, in generate
    self.gen_incs()
  File "/home/jiegec/capstone/suite/auto-sync/src/autosync/IncGenerator.py", line 177, in gen_incs
    raise e
  File "/home/jiegec/capstone/suite/auto-sync/src/autosync/IncGenerator.py", line 171, in gen_incs
    subprocess.run(
  File "/usr/lib/python3.11/subprocess.py", line 571, in run
    raise CalledProcessError(retcode, process.args,
subprocess.CalledProcessError: Command '['/home/jiegec/capstone/suite/auto-sync/vendor/llvm_root/build/bin/llvm-tblgen', '--printerLang=CCS', '--gen-disassembler', '-I', '/home/jiegec/capstone/suite/auto-sync/vendor/llvm_root/llvm/include', '-I', '/home/jiegec/capstone/suite/auto-sync/vendor/llvm_root/llvm/lib/Target/LoongArch', '-o', '/home/jiegec/capstone/suite/auto-sync/build/llvm_c_inc/LoongArchGenDisassemblerTables.inc', '/home/jiegec/capstone/suite/auto-sync/vendor/llvm_root/llvm/lib/Target/LoongArch/LoongArch.td']' returned non-zero exit status 1.

Update: oh, I need to use auto-sync-18 from your repo, not capstone-engine.

jiegec avatar May 03 '24 08:05 jiegec

Merged with https://github.com/capstone-engine/llvm-capstone/pull/45

Rot127 avatar May 29 '24 08:05 Rot127