Skip to content
Snippets Groups Projects
  • Georg-Johann Lay's avatar
    0c578db6
    builtin_insert_bits-1.c: New test. · 0c578db6
    Georg-Johann Lay authored
    gcc/testsuite/
    	* gcc.target/avr/torture/builtin_insert_bits-1.c: New test.
    	* gcc.target/avr/torture/builtin_insert_bits-2.c: New test.
    
    gcc/
    	* doc/extend.texi (AVR Built-in Functions): Remove doc for
    	__builtin_avr_map8, __builtin_avr_map16.
    	Document __builtin_avr_insert_bits.
    	* config/avr/avr.md (map_bitsqi, map_bitshi): Remove.
    	(insert_bits): New insn.
    	(adjust_len.map_bits): Rename to insert_bits.
    	(UNSPEC_MAP_BITS): Rename to UNSPEC_INSERT_BITS.
    	* avr-protos.h (avr_out_map_bits): Remove.
    	(avr_out_insert_bits, avr_has_nibble_0xf): New.
    	* config/avr/constraints.md (Cxf,C0f): New.
    	* config/avr/avr.c (avr_cpu_cpp_builtins): Remove built-in
    	defines __BUILTIN_AVR_MAP8, __BUILTIN_AVR_MAP16.
    	New built-in define __BUILTIN_AVR_INSERT_BITS.
    	* config/avr/avr.c (TARGET_FOLD_BUILTIN): New define.
    	(enum avr_builtin_id): Add AVR_BUILTIN_INSERT_BITS.
    	(avr_move_bits): Rewrite.
    	(avr_fold_builtin, avr_map_metric, avr_map_decompose): New static
    	functions.
    	(avr_map_op_t): New typedef.
    	(avr_map_op): New static variable.
    	(avr_out_insert_bits, avr_has_nibble_0xf): New functions.
    	(adjust_insn_length): Handle ADJUST_LEN_INSERT_BITS.
    	(avr_init_builtins): Add definition for __builtin_avr_insert_bits.
    	(bdesc_3arg, avr_expand_triop_builtin): New.
    	(avr_expand_builtin): Use them. And handle AVR_BUILTIN_INSERT_BITS.
    	(avr_revert_map, avr_swap_map, avr_id_map, avr_sig_map): Remove.
    	(avr_map_hamming_byte, avr_map_hamming_nonstrict): Remove.
    	(avr_map_equal_p, avr_map_sig_p): Remove.
    	(avr_out_swap_bits, avr_out_revert_bits, avr_out_map_bits): Remove.
    	(bdesc_2arg): Remove AVR_BUILTIN_MAP8, AVR_BUILTIN_MAP16.
    	(adjust_insn_length): Remove handling for ADJUST_LEN_MAP_BITS.
    	(enum avr_builtin_id): Remove AVR_BUILTIN_MAP8, AVR_BUILTIN_MAP16.
    	(avr_init_builtins): Remove __builtin_avr_map8, __builtin_avr_map16.
    	(avr_expand_builtin): Remove AVR_BUILTIN_MAP8, AVR_BUILTIN_MAP16.
    
    From-SVN: r184264
    0c578db6
    History
    builtin_insert_bits-1.c: New test.
    Georg-Johann Lay authored
    gcc/testsuite/
    	* gcc.target/avr/torture/builtin_insert_bits-1.c: New test.
    	* gcc.target/avr/torture/builtin_insert_bits-2.c: New test.
    
    gcc/
    	* doc/extend.texi (AVR Built-in Functions): Remove doc for
    	__builtin_avr_map8, __builtin_avr_map16.
    	Document __builtin_avr_insert_bits.
    	* config/avr/avr.md (map_bitsqi, map_bitshi): Remove.
    	(insert_bits): New insn.
    	(adjust_len.map_bits): Rename to insert_bits.
    	(UNSPEC_MAP_BITS): Rename to UNSPEC_INSERT_BITS.
    	* avr-protos.h (avr_out_map_bits): Remove.
    	(avr_out_insert_bits, avr_has_nibble_0xf): New.
    	* config/avr/constraints.md (Cxf,C0f): New.
    	* config/avr/avr.c (avr_cpu_cpp_builtins): Remove built-in
    	defines __BUILTIN_AVR_MAP8, __BUILTIN_AVR_MAP16.
    	New built-in define __BUILTIN_AVR_INSERT_BITS.
    	* config/avr/avr.c (TARGET_FOLD_BUILTIN): New define.
    	(enum avr_builtin_id): Add AVR_BUILTIN_INSERT_BITS.
    	(avr_move_bits): Rewrite.
    	(avr_fold_builtin, avr_map_metric, avr_map_decompose): New static
    	functions.
    	(avr_map_op_t): New typedef.
    	(avr_map_op): New static variable.
    	(avr_out_insert_bits, avr_has_nibble_0xf): New functions.
    	(adjust_insn_length): Handle ADJUST_LEN_INSERT_BITS.
    	(avr_init_builtins): Add definition for __builtin_avr_insert_bits.
    	(bdesc_3arg, avr_expand_triop_builtin): New.
    	(avr_expand_builtin): Use them. And handle AVR_BUILTIN_INSERT_BITS.
    	(avr_revert_map, avr_swap_map, avr_id_map, avr_sig_map): Remove.
    	(avr_map_hamming_byte, avr_map_hamming_nonstrict): Remove.
    	(avr_map_equal_p, avr_map_sig_p): Remove.
    	(avr_out_swap_bits, avr_out_revert_bits, avr_out_map_bits): Remove.
    	(bdesc_2arg): Remove AVR_BUILTIN_MAP8, AVR_BUILTIN_MAP16.
    	(adjust_insn_length): Remove handling for ADJUST_LEN_MAP_BITS.
    	(enum avr_builtin_id): Remove AVR_BUILTIN_MAP8, AVR_BUILTIN_MAP16.
    	(avr_init_builtins): Remove __builtin_avr_map8, __builtin_avr_map16.
    	(avr_expand_builtin): Remove AVR_BUILTIN_MAP8, AVR_BUILTIN_MAP16.
    
    From-SVN: r184264