arm.c (arm_init_neon_builtins): Register built-in types immediately after creating them.
* config/arm/arm.c (arm_init_neon_builtins): Register built-in types immediately after creating them. From-SVN: r137601
This commit is contained in:
parent
5cef5bf51b
commit
bcbdbbb01c
2 changed files with 43 additions and 38 deletions
|
@ -1,3 +1,8 @@
|
|||
2008-07-07 Joseph Myers <joseph@codesourcery.com>
|
||||
|
||||
* config/arm/arm.c (arm_init_neon_builtins): Register built-in
|
||||
types immediately after creating them.
|
||||
|
||||
2008-07-07 Joseph Myers <joseph@codesourcery.com>
|
||||
|
||||
* config/arm/aout.h (DOLLARS_IN_IDENTIFIERS): Remove.
|
||||
|
|
|
@ -15094,6 +15094,24 @@ arm_init_neon_builtins (void)
|
|||
TYPE_PRECISION (neon_float_type_node) = FLOAT_TYPE_SIZE;
|
||||
layout_type (neon_float_type_node);
|
||||
|
||||
/* Define typedefs which exactly correspond to the modes we are basing vector
|
||||
types on. If you change these names you'll need to change
|
||||
the table used by arm_mangle_type too. */
|
||||
(*lang_hooks.types.register_builtin_type) (neon_intQI_type_node,
|
||||
"__builtin_neon_qi");
|
||||
(*lang_hooks.types.register_builtin_type) (neon_intHI_type_node,
|
||||
"__builtin_neon_hi");
|
||||
(*lang_hooks.types.register_builtin_type) (neon_intSI_type_node,
|
||||
"__builtin_neon_si");
|
||||
(*lang_hooks.types.register_builtin_type) (neon_float_type_node,
|
||||
"__builtin_neon_sf");
|
||||
(*lang_hooks.types.register_builtin_type) (neon_intDI_type_node,
|
||||
"__builtin_neon_di");
|
||||
(*lang_hooks.types.register_builtin_type) (neon_polyQI_type_node,
|
||||
"__builtin_neon_poly8");
|
||||
(*lang_hooks.types.register_builtin_type) (neon_polyHI_type_node,
|
||||
"__builtin_neon_poly16");
|
||||
|
||||
intQI_pointer_node = build_pointer_type (neon_intQI_type_node);
|
||||
intHI_pointer_node = build_pointer_type (neon_intHI_type_node);
|
||||
intSI_pointer_node = build_pointer_type (neon_intSI_type_node);
|
||||
|
@ -15146,12 +15164,32 @@ arm_init_neon_builtins (void)
|
|||
intUSI_type_node = make_unsigned_type (GET_MODE_PRECISION (SImode));
|
||||
intUDI_type_node = make_unsigned_type (GET_MODE_PRECISION (DImode));
|
||||
|
||||
(*lang_hooks.types.register_builtin_type) (intUQI_type_node,
|
||||
"__builtin_neon_uqi");
|
||||
(*lang_hooks.types.register_builtin_type) (intUHI_type_node,
|
||||
"__builtin_neon_uhi");
|
||||
(*lang_hooks.types.register_builtin_type) (intUSI_type_node,
|
||||
"__builtin_neon_usi");
|
||||
(*lang_hooks.types.register_builtin_type) (intUDI_type_node,
|
||||
"__builtin_neon_udi");
|
||||
|
||||
/* Opaque integer types for structures of vectors. */
|
||||
intEI_type_node = make_signed_type (GET_MODE_PRECISION (EImode));
|
||||
intOI_type_node = make_signed_type (GET_MODE_PRECISION (OImode));
|
||||
intCI_type_node = make_signed_type (GET_MODE_PRECISION (CImode));
|
||||
intXI_type_node = make_signed_type (GET_MODE_PRECISION (XImode));
|
||||
|
||||
(*lang_hooks.types.register_builtin_type) (intTI_type_node,
|
||||
"__builtin_neon_ti");
|
||||
(*lang_hooks.types.register_builtin_type) (intEI_type_node,
|
||||
"__builtin_neon_ei");
|
||||
(*lang_hooks.types.register_builtin_type) (intOI_type_node,
|
||||
"__builtin_neon_oi");
|
||||
(*lang_hooks.types.register_builtin_type) (intCI_type_node,
|
||||
"__builtin_neon_ci");
|
||||
(*lang_hooks.types.register_builtin_type) (intXI_type_node,
|
||||
"__builtin_neon_xi");
|
||||
|
||||
/* Pointers to vector types. */
|
||||
V8QI_pointer_node = build_pointer_type (V8QI_type_node);
|
||||
V4HI_pointer_node = build_pointer_type (V4HI_type_node);
|
||||
|
@ -15195,44 +15233,6 @@ arm_init_neon_builtins (void)
|
|||
build_function_type_list (void_type_node, V2DI_pointer_node, V2DI_type_node,
|
||||
V2DI_type_node, NULL);
|
||||
|
||||
/* Define typedefs which exactly correspond to the modes we are basing vector
|
||||
types on. If you change these names you'll need to change
|
||||
the table used by arm_mangle_type too. */
|
||||
(*lang_hooks.types.register_builtin_type) (neon_intQI_type_node,
|
||||
"__builtin_neon_qi");
|
||||
(*lang_hooks.types.register_builtin_type) (neon_intHI_type_node,
|
||||
"__builtin_neon_hi");
|
||||
(*lang_hooks.types.register_builtin_type) (neon_intSI_type_node,
|
||||
"__builtin_neon_si");
|
||||
(*lang_hooks.types.register_builtin_type) (neon_float_type_node,
|
||||
"__builtin_neon_sf");
|
||||
(*lang_hooks.types.register_builtin_type) (neon_intDI_type_node,
|
||||
"__builtin_neon_di");
|
||||
|
||||
(*lang_hooks.types.register_builtin_type) (neon_polyQI_type_node,
|
||||
"__builtin_neon_poly8");
|
||||
(*lang_hooks.types.register_builtin_type) (neon_polyHI_type_node,
|
||||
"__builtin_neon_poly16");
|
||||
(*lang_hooks.types.register_builtin_type) (intUQI_type_node,
|
||||
"__builtin_neon_uqi");
|
||||
(*lang_hooks.types.register_builtin_type) (intUHI_type_node,
|
||||
"__builtin_neon_uhi");
|
||||
(*lang_hooks.types.register_builtin_type) (intUSI_type_node,
|
||||
"__builtin_neon_usi");
|
||||
(*lang_hooks.types.register_builtin_type) (intUDI_type_node,
|
||||
"__builtin_neon_udi");
|
||||
|
||||
(*lang_hooks.types.register_builtin_type) (intTI_type_node,
|
||||
"__builtin_neon_ti");
|
||||
(*lang_hooks.types.register_builtin_type) (intEI_type_node,
|
||||
"__builtin_neon_ei");
|
||||
(*lang_hooks.types.register_builtin_type) (intOI_type_node,
|
||||
"__builtin_neon_oi");
|
||||
(*lang_hooks.types.register_builtin_type) (intCI_type_node,
|
||||
"__builtin_neon_ci");
|
||||
(*lang_hooks.types.register_builtin_type) (intXI_type_node,
|
||||
"__builtin_neon_xi");
|
||||
|
||||
dreg_types[0] = V8QI_type_node;
|
||||
dreg_types[1] = V4HI_type_node;
|
||||
dreg_types[2] = V2SI_type_node;
|
||||
|
|
Loading…
Add table
Reference in a new issue