public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug target/50931] New: [avr] Support a 24-bit scalar integer mode
@ 2011-10-31 13:02 gjl at gcc dot gnu.org
2011-10-31 13:04 ` [Bug target/50931] " gjl at gcc dot gnu.org
` (4 more replies)
0 siblings, 5 replies; 6+ messages in thread
From: gjl at gcc dot gnu.org @ 2011-10-31 13:02 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50931
Bug #: 50931
Summary: [avr] Support a 24-bit scalar integer mode
Classification: Unclassified
Product: gcc
Version: 4.7.0
Status: UNCONFIRMED
Severity: enhancement
Priority: P3
Component: target
AssignedTo: gjl@gcc.gnu.org
ReportedBy: gjl@gcc.gnu.org
CC: eric.weddington@atmel.com
Target: avr
In order to support the upcoming named address spaces, a 24-bit wide mode is
needed because 32-bit mode is too expensive.
As a byproduct, 24-bit arithmetic can be exposed to user for general integer
arithmetic by means of built-in types. This is advantageous if 32-bit
arithmetic is too expensive and 16-bit arithmetic is too unprecise.
^ permalink raw reply [flat|nested] 6+ messages in thread
* [Bug target/50931] [avr] Support a 24-bit scalar integer mode
2011-10-31 13:02 [Bug target/50931] New: [avr] Support a 24-bit scalar integer mode gjl at gcc dot gnu.org
@ 2011-10-31 13:04 ` gjl at gcc dot gnu.org
2011-11-04 16:21 ` gjl at gcc dot gnu.org
` (3 subsequent siblings)
4 siblings, 0 replies; 6+ messages in thread
From: gjl at gcc dot gnu.org @ 2011-10-31 13:04 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50931
Georg-Johann Lay <gjl at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Priority|P3 |P4
Status|UNCONFIRMED |ASSIGNED
Last reconfirmed| |2011-10-31
Blocks| |49868
Target Milestone|--- |4.7.0
Ever Confirmed|0 |1
^ permalink raw reply [flat|nested] 6+ messages in thread
* [Bug target/50931] [avr] Support a 24-bit scalar integer mode
2011-10-31 13:02 [Bug target/50931] New: [avr] Support a 24-bit scalar integer mode gjl at gcc dot gnu.org
2011-10-31 13:04 ` [Bug target/50931] " gjl at gcc dot gnu.org
@ 2011-11-04 16:21 ` gjl at gcc dot gnu.org
2011-12-14 10:20 ` gjl at gcc dot gnu.org
` (2 subsequent siblings)
4 siblings, 0 replies; 6+ messages in thread
From: gjl at gcc dot gnu.org @ 2011-11-04 16:21 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50931
--- Comment #1 from Georg-Johann Lay <gjl at gcc dot gnu.org> 2011-11-04 16:20:28 UTC ---
Author: gjl
Date: Fri Nov 4 16:20:18 2011
New Revision: 180962
URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=180962
Log:
gcc/
PR target/50931
* config/avr/avr-modes.def: New file defining PSImode.
* config/avr/avr-c.c (__INT24_MAX__, __INT24_MIN__,
__UINT24_MAX__): New built-in defines.
* config/avr/avr.md (adjust_len): Add tstpsi, mov24, reload_in24,
ashlpsi, ashrpsi, lshrpsi.
(QISO, QIDI, HISI, HIDI, MPUSH, rotx, rotsmode): Add PSI.
(MOVMODE): New mode iterator.
(movpsi): New expander.
(movqi, movhi, movsi, movsf, movpsi): Write as one using MOVMODE.
(*reload_inpsi, *movpsi): New insns.
(*reload_inpsi): New RTL peephole.
(addpsi3, *addpsi3_zero_extend.qi, *addpsi3_zero_extend.hi,
*addpsi3_sign_extend.hi): New insns.
(subpsi3, *subpsi3_zero_extend.qi, *subpsi3_zero_extend.hi,
*subpsi3_sign_extend.hi): New insns.
(divmodpsi4, udivmodpsi4): New define insn-and-split.
(*divmodpsi4_call, *udivmodpsi4_call): New insns.
(andpsi3, iorpsi3, xorpsi3): New insns.
(*rotlpsi2.1, *rotlpsi2.23): New insns.
(*rotw<mode>): Insn condition only allow even-sized modes.
(*rotb<mode>): Insn condition allows odd-sized modes.
(ashlpsi3, ashrpsi3, lshrpsi3, *addpsi3.lt0): New insns.
(negpsi2, one_cmplpsi2): New insns.
(extendqipsi2, extendhipsi2, extendpsisi2): New insns.
(zero_extendqipsi2, zero_extendhipsi2, zero_extendpsisi2): New
insn-and-splits.
(*cmppsi, *negated_tstpsi, *reversed_tstpsi): New insns.
(cbranchpsi4): New expander.
* config/avr/constraints.md (Ca3, Co3, Cx3): New constraints.
* config/avr/avr-protos.h (avr_out_tstpsi, avr_out_movpsi,
avr_out_ashlpsi3, avr_out_ashrpsi3, avr_out_lshrpsi3,
avr_out_reload_inpsi): New prototypes.
* config/avr/avr.c (TARGET_SCALAR_MODE_SUPPORTED_P): Define to...
(avr_scalar_mode_supported_p): ...this new static function.
(avr_asm_len): Always return "".
(avr_out_load_psi, avr_out_store_psi): New static functions.
(avr_out_movpsi, avr_out_reload_inpsi): New functions.
(avr_out_tstpsi): New function.
(avr_out_ashlpsi3, avr_out_ashrpsi3, avr_out_lshrpsi3): New functions.
(avr_out_plus_1, output_reload_in_const): Handle 3-byte types.
(avr_simplify_comparison_p): Ditto.
(adjust_insn_length): Handle ADJUST_LEN_RELOAD_IN24,
ADJUST_LEN_MOV24, ADJUST_LEN_TSTPSI, ADJUST_LEN_ASHLPSI,
ADJUST_LEN_ASHRPSI, ADJUST_LEN_LSHRPSI.
(avr_rtx_costs_1): Report PSI costs.
(avr_libcall_value): Handle odd-sized parameters.
(avr_init_builtin_int24): New static function to define built-in
24-bit types __int24 and __uint24.
(avr_init_builtins): Use it.
libgcc/
PR target/50931
* config/t-avr (LIB1ASMFUNCS): Add _divmodpsi4, _udivmodpsi4.
* config/lib1funcs.S (__udivmodpsi4, __divmodpsi4): New functions.
Added:
trunk/gcc/config/avr/avr-modes.def
Modified:
trunk/gcc/ChangeLog
trunk/gcc/config/avr/avr-c.c
trunk/gcc/config/avr/avr-protos.h
trunk/gcc/config/avr/avr.c
trunk/gcc/config/avr/avr.md
trunk/gcc/config/avr/constraints.md
trunk/libgcc/ChangeLog
trunk/libgcc/config/avr/lib1funcs.S
trunk/libgcc/config/avr/t-avr
^ permalink raw reply [flat|nested] 6+ messages in thread
* [Bug target/50931] [avr] Support a 24-bit scalar integer mode
2011-10-31 13:02 [Bug target/50931] New: [avr] Support a 24-bit scalar integer mode gjl at gcc dot gnu.org
2011-10-31 13:04 ` [Bug target/50931] " gjl at gcc dot gnu.org
2011-11-04 16:21 ` gjl at gcc dot gnu.org
@ 2011-12-14 10:20 ` gjl at gcc dot gnu.org
2012-03-22 9:28 ` rguenth at gcc dot gnu.org
2012-03-28 12:29 ` gjl at gcc dot gnu.org
4 siblings, 0 replies; 6+ messages in thread
From: gjl at gcc dot gnu.org @ 2011-12-14 10:20 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50931
--- Comment #2 from Georg-Johann Lay <gjl at gcc dot gnu.org> 2011-12-14 10:01:04 UTC ---
Author: gjl
Date: Wed Dec 14 10:00:56 2011
New Revision: 182328
URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=182328
Log:
libgcc/
PR target/50931
* config/avr/t-avr (LIB1ASMSRC): Add _mulpsi3, _mulsqipsi3.
* config/avr/lib1funcs.S (__mulpsi3, __mulsqipsi3): New functions.
gcc/
PR target/50931
* config/avr/avr.md (mulpsi3): New expander.
(*umulqihipsi3, *umulhiqipsi3): New insns.
(*mulsqipsi3.libgcc, *mulpsi3.libgcc): New insns.
(mulsqipsi3, *mulpsi3): New insn-and-splits.
(ashlpsi3): Turn to expander. Move insn code to...
(*ashlpsi3): ...this new insn.
testsuite/
PR target/50931
* gcc.target/avr/torture/int24-mul.c: New testcase.
Added:
trunk/gcc/testsuite/gcc.target/avr/torture/int24-mul.c
Modified:
trunk/gcc/ChangeLog
trunk/gcc/config/avr/avr.md
trunk/gcc/testsuite/ChangeLog
trunk/libgcc/ChangeLog
trunk/libgcc/config/avr/lib1funcs.S
trunk/libgcc/config/avr/t-avr
^ permalink raw reply [flat|nested] 6+ messages in thread
* [Bug target/50931] [avr] Support a 24-bit scalar integer mode
2011-10-31 13:02 [Bug target/50931] New: [avr] Support a 24-bit scalar integer mode gjl at gcc dot gnu.org
` (2 preceding siblings ...)
2011-12-14 10:20 ` gjl at gcc dot gnu.org
@ 2012-03-22 9:28 ` rguenth at gcc dot gnu.org
2012-03-28 12:29 ` gjl at gcc dot gnu.org
4 siblings, 0 replies; 6+ messages in thread
From: rguenth at gcc dot gnu.org @ 2012-03-22 9:28 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50931
Richard Guenther <rguenth at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Target Milestone|4.7.0 |4.7.1
--- Comment #3 from Richard Guenther <rguenth at gcc dot gnu.org> 2012-03-22 08:27:31 UTC ---
GCC 4.7.0 is being released, adjusting target milestone.
^ permalink raw reply [flat|nested] 6+ messages in thread
* [Bug target/50931] [avr] Support a 24-bit scalar integer mode
2011-10-31 13:02 [Bug target/50931] New: [avr] Support a 24-bit scalar integer mode gjl at gcc dot gnu.org
` (3 preceding siblings ...)
2012-03-22 9:28 ` rguenth at gcc dot gnu.org
@ 2012-03-28 12:29 ` gjl at gcc dot gnu.org
4 siblings, 0 replies; 6+ messages in thread
From: gjl at gcc dot gnu.org @ 2012-03-28 12:29 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50931
Georg-Johann Lay <gjl at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Keywords|documentation |
Status|ASSIGNED |RESOLVED
Resolution| |FIXED
Target Milestone|4.7.1 |4.7.0
--- Comment #4 from Georg-Johann Lay <gjl at gcc dot gnu.org> 2012-03-28 11:07:26 UTC ---
Fixed in 4.7.0 (up to documentation)
^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2012-03-28 11:07 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2011-10-31 13:02 [Bug target/50931] New: [avr] Support a 24-bit scalar integer mode gjl at gcc dot gnu.org
2011-10-31 13:04 ` [Bug target/50931] " gjl at gcc dot gnu.org
2011-11-04 16:21 ` gjl at gcc dot gnu.org
2011-12-14 10:20 ` gjl at gcc dot gnu.org
2012-03-22 9:28 ` rguenth at gcc dot gnu.org
2012-03-28 12:29 ` gjl at gcc dot gnu.org
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).