Implement __builtin_huge_valf and __builtin_huge_vall.
authorChristoph Mallon <christoph.mallon@gmx.de>
Fri, 5 Feb 2010 21:26:08 +0000 (21:26 +0000)
committerChristoph Mallon <christoph.mallon@gmx.de>
Fri, 5 Feb 2010 21:26:08 +0000 (21:26 +0000)
[r27071]

ast.c
ast2firm.c
entity_t.h
parser.c

diff --git a/ast.c b/ast.c
index 727d758..5dc9b4c 100644 (file)
--- a/ast.c
+++ b/ast.c
@@ -1789,6 +1789,8 @@ static bool is_builtin_const_call(const expression_t *expression)
 
        switch (ref->entity->function.btk) {
        case bk_gnu_builtin_huge_val:
+       case bk_gnu_builtin_huge_valf:
+       case bk_gnu_builtin_huge_vall:
        case bk_gnu_builtin_inf:
        case bk_gnu_builtin_inff:
        case bk_gnu_builtin_infl:
index f149422..39c26e2 100644 (file)
@@ -1677,6 +1677,8 @@ static ir_node *process_builtin_call(const call_expression_t *call)
        }
 
        case bk_gnu_builtin_huge_val:
+       case bk_gnu_builtin_huge_valf:
+       case bk_gnu_builtin_huge_vall:
        case bk_gnu_builtin_inf:
        case bk_gnu_builtin_inff:
        case bk_gnu_builtin_infl: {
index 27e5c9d..bf061b7 100644 (file)
@@ -247,6 +247,8 @@ typedef enum builtin_kind_t {
        bk_none = 0,                   /**< no builtin */
        bk_gnu_builtin_alloca,         /**< GNU __builtin_alloca */
        bk_gnu_builtin_huge_val,       /**< GNU __builtin_huge_val */
+       bk_gnu_builtin_huge_valf,      /**< GNU __builtin_huge_valf */
+       bk_gnu_builtin_huge_vall,      /**< GNU __builtin_huge_vall */
        bk_gnu_builtin_inf,            /**< GNU __builtin_inf */
        bk_gnu_builtin_inff,           /**< GNU __builtin_inff */
        bk_gnu_builtin_infl,           /**< GNU __builtin_infl */
index 4b95066..8abccad 100644 (file)
--- a/parser.c
+++ b/parser.c
@@ -10953,6 +10953,8 @@ static void create_gnu_builtins(void)
 
        GNU_BUILTIN(alloca,         make_function_1_type(type_void_ptr, type_size_t));
        GNU_BUILTIN(huge_val,       make_function_0_type(type_double));
+       GNU_BUILTIN(huge_valf,      make_function_0_type(type_float));
+       GNU_BUILTIN(huge_vall,      make_function_0_type(type_long_double));
        GNU_BUILTIN(inf,            make_function_0_type(type_double));
        GNU_BUILTIN(inff,           make_function_0_type(type_float));
        GNU_BUILTIN(infl,           make_function_0_type(type_long_double));