[all-commits] [llvm/llvm-project] 21bce9: [Support] Add CSKY target parser and attributes pa...

Zi Xuan Wu (Zeson) via All-commits all-commits at lists.llvm.org
Sun Feb 27 19:35:48 PST 2022


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 21bce9007ae818f95863dca928c1488d982e5383
      https://github.com/llvm/llvm-project/commit/21bce9007ae818f95863dca928c1488d982e5383
  Author: Zi Xuan Wu <zixuan.wu at linux.alibaba.com>
  Date:   2022-02-28 (Mon, 28 Feb 2022)

  Changed paths:
    M llvm/include/llvm/BinaryFormat/ELF.h
    A llvm/include/llvm/Support/CSKYAttributeParser.h
    A llvm/include/llvm/Support/CSKYAttributes.h
    A llvm/include/llvm/Support/CSKYTargetParser.def
    A llvm/include/llvm/Support/CSKYTargetParser.h
    M llvm/lib/Support/CMakeLists.txt
    A llvm/lib/Support/CSKYAttributeParser.cpp
    A llvm/lib/Support/CSKYAttributes.cpp
    A llvm/lib/Support/CSKYTargetParser.cpp
    M llvm/lib/Target/CSKY/AsmParser/CSKYAsmParser.cpp
    M llvm/unittests/Support/CMakeLists.txt
    A llvm/unittests/Support/CSKYAttributeParserTest.cpp
    A llvm/unittests/Support/CSKYTargetParserTest.cpp
    M llvm/utils/gn/secondary/llvm/lib/Support/BUILD.gn
    M llvm/utils/gn/secondary/llvm/unittests/Support/BUILD.gn

  Log Message:
  -----------
  [Support] Add CSKY target parser and attributes parser

Construct LLVM Support module about CSKY target parser and attribute parser.
It refers CSKY ABIv2 and implementation of GNU binutils and GCC.

https://github.com/c-sky/csky-doc/blob/master/C-SKY_V2_CPU_Applications_Binary_Interface_Standards_Manual.pdf

Now we only support CSKY 800 series cpus and newer cpus in the future undering CSKYv2 ABI specification.
There are 11 archs including ck801, ck802, ck803, ck803s, ck804, ck805, ck807, ck810, ck810v, ck860, ck860v.

Every arch has base extensions, the cpus of that arch family have more extended extensions than base extensions.
We need specify extended extensions for every cpu. Every extension has its enum value, name and related llvm feature string with +/-.
Every enum value represents a bit of uint64_t integer.

Differential Revision: https://reviews.llvm.org/D119917




More information about the All-commits mailing list