diff options
author | Qiu Chaofan <qiucofan@cn.ibm.com> | 2021-09-06 17:49:23 +0800 |
---|---|---|
committer | Qiu Chaofan <qiucofan@cn.ibm.com> | 2021-09-06 18:00:58 +0800 |
commit | fae0dfa6421ea6c02f86ba7292fa782e1e2b69d1 (patch) | |
tree | 709fcdac25195781a15660d74e8588a1707248df /clang/bindings | |
parent | 96f6785bc9fe3219e9486ff09b22b31fa0c73b34 (diff) | |
download | llvm-fae0dfa6421ea6c02f86ba7292fa782e1e2b69d1.zip llvm-fae0dfa6421ea6c02f86ba7292fa782e1e2b69d1.tar.gz llvm-fae0dfa6421ea6c02f86ba7292fa782e1e2b69d1.tar.bz2 |
[Clang] Add __ibm128 type to represent ppc_fp128
Currently, we have no front-end type for ppc_fp128 type in IR. PowerPC
target generates ppc_fp128 type from long double now, but there's option
(-mabi=(ieee|ibm)longdouble) to control it and we're going to do
transition from IBM extended double-double ppc_fp128 to IEEE fp128 in
the future.
This patch adds type __ibm128 which always represents ppc_fp128 in IR,
as what GCC did for that type. Without this type in Clang, compilation
will fail if compiling against future version of libstdcxx (which uses
__ibm128 in headers).
Although all operations in backend for __ibm128 is done by software,
only PowerPC enables support for it.
There's something not implemented in this commit, which can be done in
future ones:
- Literal suffix for __ibm128 type. w/W is suitable as GCC documented.
- __attribute__((mode(IF))) should be for __ibm128.
- Complex __ibm128 type.
Reviewed By: rjmccall
Differential Revision: https://reviews.llvm.org/D93377
Diffstat (limited to 'clang/bindings')
-rw-r--r-- | clang/bindings/python/clang/cindex.py | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/clang/bindings/python/clang/cindex.py b/clang/bindings/python/clang/cindex.py index aceaa13..44bfba4 100644 --- a/clang/bindings/python/clang/cindex.py +++ b/clang/bindings/python/clang/cindex.py @@ -2059,6 +2059,7 @@ TypeKind.OBJCCLASS = TypeKind(28) TypeKind.OBJCSEL = TypeKind(29) TypeKind.FLOAT128 = TypeKind(30) TypeKind.HALF = TypeKind(31) +TypeKind.IBM128 = TypeKind(40) TypeKind.COMPLEX = TypeKind(100) TypeKind.POINTER = TypeKind(101) TypeKind.BLOCKPOINTER = TypeKind(102) |