[patch]: New feature __int128 type C/C++ for upcoming 4.6 for review

Kai Tietz ktietz70@googlemail.com
Sat Jan 9 12:15:00 GMT 2010


Hello,

this patch adds support of keyword "__int128" for 128-bit integer scalar type.

ChangeLog gcc/doc

2010-01-09  Kai Tietz  <kai.tietz@onevision.com>

	* doc/c-tree.texi (INTEGER_TYPE): Add documentation
	of __int128 type.
	* doc/extend.texi: Likewise.
	* tm.texi (INT128_TYPE_SIZE): Add documentation.

ChangeLog gcc

2010-01-09  Kai Tietz  <kai.tietz@onevision.com>


	* builtin-types.def (BT_INT128): New primitive type.
	(BT_UINT128): Likewise.
	* c-common.h (enum rid): New enumerator RID_INT128.
	* c-cppbuiltins.c (c_cpp_builtins): Define if supported
	by target __SIZEOF_INT128__.
	(type_suffix): Add "I128" and "UI128" suffix for display.
	* c-pretty-print.c: Likewise.
	* c-common.c (int128_integer_type_node): Add
	documentation reference.
	(int128_unsigned_type_node): Likewise.
	(c_common_reswords): Add "__int128" keyword.
	(c_common_type_for_size): Add support for
	int128_integer_type_node and int128_unsigned_type_node.
	(c_common_type_for_mode): Likewise.
	(c_common_signed_or_unsigned_type): Likewise.
	(c_build_bitfield_integer_type): Likewise.
	(c_common_nodes_and_builtins): Likewise.
	* c-decl.c (quals_from_declspecs): Likewise.
	(build_null_declspecs): Likewise.
	(declspecs_add_type): Likewise.
	* gimple.c (gimple_signed_or_unsigned_type): Likewise.
	* tree.c (make_or_reuse_type): Likewise.
	(build_common_tree_nodes): Likewise.
	* c-parser.c (c_token_starts_typename): Add RID_INT128 support.
	(c_token_starts_declspecs): Likewise.
	(c_parser_declspecs): Likewise.
	(c_parser_attributes): Likewise.
	(c_parser_objc_selector): Likewise.
	* c-tree.h (struct c_declspecs): Add int128_p bitfield member.
	* defaults.h (INT128_TYPE_SIZE): New macro for type size.
	* tree.h (enum integer_type_kind): Add itk_int128 and
	itk_unsigned_int128 enumerator.
	(int128_integer_type_node): New.
	(int128_unsigned_type_node=: New.

ChangeLog gcc/cp

2010-01-09  Kai Tietz  <kai.tietz@onevision.com>

	* cp/cp-tree.h (cp_decl_specifier_seq): Add explicit_int128_p
	bitfield member.
	* cp/decl.c (grokdeclarator): Add __int128 type support.
	* cp/parser.c (cp_lexer_next_token_is_decl_specifier_keyword):
	Add RID_INT128 check.
	(cp_parser_simple_type_specifier): Likewise.
	* cp/rtti.c (emit_support_tinfos): Likewise.
	* cp/typeck.c (cp_common_type): Likewise.

ChangeLog gcc/testsuite

2010-01-09  Kai Tietz  <kai.tietz@onevision.com>

	* gcc.dg/int128-1.c: New test case.
	* gcc.dg/int128-2.c: Likewise.
	* gcc.dg/int128-3.c: Likewise.

This patch was tested for i686-pc-cygwin, x86_64-w64-mingw32,
i686-w64-mingw32, and i686-pc-linux.

Is this patch to apply to 4.6 as soon as 4.6 will be in stage 1?

Cheers,
Kai


-- 
|  (\_/) This is Bunny. Copy and paste
| (='.'=) Bunny into your signature to help
| (")_(") him gain world domination
-------------- next part --------------
A non-text attachment was scrubbed...
Name: int128.diff
Type: application/octet-stream
Size: 33156 bytes
Desc: not available
URL: <http://gcc.gnu.org/pipermail/gcc-patches/attachments/20100109/6d4d4cda/attachment.obj>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: int128doc.diff
Type: application/octet-stream
Size: 4244 bytes
Desc: not available
URL: <http://gcc.gnu.org/pipermail/gcc-patches/attachments/20100109/6d4d4cda/attachment-0001.obj>


More information about the Gcc-patches mailing list