Development release 20120606 of mspgcc is now available.

This is a development release.  It is alpha-quality.  There are known
issues, and not all features I intended are present.

It also provides essentially full support for 20-bit code and data.  So
please be adventurous, download it or checkout the workspace, and try it.

The sole documentation for 20-bit use is at:

  
https://sourceforge.net/apps/mediawiki/mspgcc/index.php?title=Gcc47:20-Bit_Design

I've updated these points since the last announcement:

 * The spelling of the memory model options has changed; use
   -mmemory-model=medium instead of -mmedium.

 * I've made sure the memory model specification is simply shorthand for
   selection of the -ma20, -mc20, -md20, and -msr20 flags.  The compiler
   defines multilibs for the following combinations:

   -msr20 [small]
   -msr20 -mc20 [medium]
   -msr20 -mc20 -md20 [large]
   -msr20 -mc20 -md20 -ma20 [huge]
   -msr20 -md20 -ma20 [no model, supports data-only huge, untested]
   -msr20 -md20 [no model, supports data-only medium, untested]

 * The semantics of memory model small has been updated to use -msr20.  If
   you don't have any interest in 20-bit integers or anything else, don't
   specify a memory model, or use -mmemory-model=none.

 * Target options -mcode-region and -mdata-region control the default
   placement of functions and data to be the far address space.

The following known limitations are present:

 * I haven't yet updated binutils to distribute objects that are declared in
   .any.* sections between the corresponding .near.* and .far.* sections;
   all .any.* sections get stuffed into low memory.  Use -mcode-region and
   -mdata-region, or add explicit __far__ attributes, to affect the
   placement of functions and data in 20-bit aware code.

 * All the 20-bit features were intended to be controlled through type and
   declaration attributes, with default settings controlled by compiler
   flags.  While this is still how it is implemented, gcc is not prepared to
   deal with the sort of mixed pointers that individual control enables.
   See
   
https://sourceforge.net/apps/mediawiki/mspgcc/index.php?title=Gcc47:20-Bit_Design#Warning_about_Mixing_Memory_Models,
   and stick to the pre-defined memory models.

 * DWARF2 data for CPUX MCUs now uses 32 bits for addresses instead of 16
   bits.  This enables building application with -ggdb when 20-bit addresses
   are present.  However, gdb has not been updated to recognize this change,
   and gdb on CPUX MCUs is probably no longer usable.

 * Some of the test programs produce an internal compiler error in
   tree-ssa-loop-ivopts.c when built with -mmemory-model=large.  This has to
   do with transforming pointers into loop induction variables when
   sizeof(void*) != sizeof(size_t).  Use another memory model; both medium
   and huge work.

 * All testing has been done on toy programs, almost entirely with -Os.
   Real applications and other optimization flags may produce errors.

The patch bundle for 20120606 is available at:

 https://sourceforge.net/projects/mspgcc/files/mspgcc/DEVEL-4.7.x

The tag workspace/release/20120606 in
git://mspgcc.git.sourceforge.net/gitroot/mspgcc/mspgcc checks out a
workspace configured for this release.  The tag workspace/master checks out
a workspace configured for the development series.

Downstream packagers: please don't bundle this.  It's so experimental, only
people who are build from source should be playing with it.  The stable
series remains LTS-20120406.

As usual, please submit problems as tracker tickets at:
https://sourceforge.net/tracker/?group_id=42303&atid=432701

Summary of changes in mspgcc release 20120606 since release 20120514

binutils: changes from binutils-2.22-20120514 to binutils-2.22-20120606:
 - 6a28808 [2012-06-06 07:15:12 -0500] Update DEV-PHASE for release
 - 8805129 [2012-05-30 17:50:59 -0500] SF 3530932 unable to link with
20-bit symbols in debug sections
 - 4e7ccd8 [2012-05-22 11:55:09 -0500] Temporarily place .any* in
default sections

gcc: changes from gcc-4.7.0-20120514 to gcc-4.7.0-20120606:
 - 52454c2 [2012-06-06 07:14:02 -0500] Update DEV-PHASE for release
 - 90cdd55 [2012-05-20 08:23:27 -0500] Upstream content change
supporting move to elfos.h
 - 5f04738 [2012-06-05 18:06:36 -0500] Add hooks for non-standard
SIZE_TYPE and PTRDIFF_TYPE
 - ffb61fc [2012-06-05 15:48:07 -0500] stor-layout: accept exact
MODE_PARTIAL_INT match
 - 03e6eb6 [2012-06-04 09:04:24 -0500] Correct/note potential misuse
of GET_MODE_BITSIZE
 - 8f71be3 [2012-05-30 11:50:03 -0500] Backport upstream precision patch
 - 1eee7ac [2012-05-20 14:22:58 -0500] Add hook
TARGET_ASM_DECL_MERGEABLE_RODATA_PREFIX
 - 803171c [2012-05-20 12:11:20 -0500] Add hook TARGET_ASM_VARIABLE_SECTION
 - 8d75405 [2012-06-06 07:08:24 -0500] Update for release
 - 6b61c03 [2012-06-06 06:29:02 -0500] Inhibit output of non-identifier locals
 - 41fe016 [2012-06-05 18:07:26 -0500] Use hooks to define
non-standard size_t and ptrdiff_t for msp430 -ma20
 - 5388334 [2012-06-05 15:44:29 -0500] Correct bias eliminating argp
 - 8b1c1eb [2012-06-05 12:35:46 -0500] Clean up push/pop expanders to
support 20-bit stack pointer
 - d67fc91 [2012-06-05 12:10:46 -0500] Add predicates validating SP mode
 - e41b504 [2012-06-05 06:20:35 -0500] Avoid improper reads from
4-byte memory into PSI
 - bb52596 [2012-06-04 19:04:43 -0500] Restore forced placement if
interrupts in near region under CPUX
 - f816b44 [2012-06-04 17:38:55 -0500] Permit const_int offset from
register as A20 indexed memory operands
 - 6405c5b [2012-06-04 17:20:22 -0500] Correct section for -md20 readonly data
 - 53eaa9a [2012-06-02 13:25:56 -0500] Inhibit reference to far
writable sections
 - c5ae3927 [2012-06-02 10:31:45 -0500] Add -mcode-region and
-mdata-region options
 - 51906e9 [2012-06-01 07:42:57 -0500] Update constants to avoid word overflow
 - 86b4c1e [2012-05-31 18:27:52 -0500] Add memory model option
 - 3f83aba [2012-05-31 14:15:51 -0500] Switch to option enumerations
 - ba9dabb [2012-05-30 17:52:41 -0500] Ensure interrupts default to
near text section
 - ba5df59 [2012-05-30 17:51:56 -0500] SF 3530932 unable to link with
20-bit symbols in debug sections
 - e935583 [2012-05-30 16:40:30 -0500] Add %@ to asm output template
 - 74a64d0 [2012-05-30 13:50:09 -0500] Add -ma16/mc16/md16 to override
-ma20/mc20/md20
 - 089e276 [2012-05-30 12:36:41 -0500] Potentially treat PSImode as a
MODE_INT instead of a MODE_PARTIAL_INT
 - a4539d6 [2012-05-30 12:05:47 -0500] Strip out unreferenced
prologue/epilogue sequences
 - d5d15e5 [2012-05-29 21:25:55 -0500] Simplify negation insn
 - e9e8afb [2012-05-29 20:50:35 -0500] Simplify register management
 - a56ed4a [2012-05-29 12:10:55 -0500] Another step to requiring
PSImode for far pointers
 - 4b154f9 [2012-05-29 11:18:03 -0500] Add a16 and recognize a16/a20
on pointer types
 - e6546a19c [2012-05-28 20:34:18 -0500] Restore function-specific
sections for strings and jump tables
 - b08b9d8 [2012-05-28 12:47:07 -0500] Place text sections in appropriate region
 - 7cf7628 [2012-05-22 11:53:16 -0500] Ensure sections express the
desired region
 - 81b946b [2012-05-22 10:34:25 -0500] Factor out categorize_decl_for_section
 - 82606a5 [2012-05-22 10:04:35 -0500] Make explicit that relocs are
not supported
 - e5b9b29 [2012-05-22 09:50:59 -0500] Nothing filters for COMMON with
near/far attrs
 - 7d887a8 [2012-05-21 14:04:44 -0500] Clean up section selection
 - 57bb4b6 [2012-05-21 13:55:14 -0500] Correct variable section to use
relevant address space information
 - 74dd1f2 [2012-05-20 16:47:43 -0500] Hook in control over unique and
variable sections
 - f42daed [2012-05-20 14:41:55 -0500] Use default_elf_select_section
as template for msp430_select_section
 - 9cfdbbb [2012-05-20 11:45:09 -0500] Move towards complete control
of section assignment
 - a80545e [2012-05-20 11:44:38 -0500] Remove unused feature (will use
switchable sections for bss)
 - 4e20a9e [2012-05-20 09:49:07 -0500] Update control flow insns to
add required A20 validations
 - 4f5abbc [2012-05-20 09:26:39 -0500] Accommodate 20-bit registers in
profile register saver
 - a3184ab [2012-05-20 08:31:39 -0500] Defer to shared elfos.h for
asm-related features
 - 09afb7f [2012-05-20 00:16:13 -0500] Clean up fprintf
 - a456cb0 [2012-05-19 23:43:44 -0500] Eliminate special definition of
ASM_OUTPUT_LABEL
 - 2914a0e [2012-05-19 23:39:55 -0500] Eliminate special definition of
globalize_label
 - 35246a5 [2012-05-19 23:24:02 -0500] Use standard size calculation
for functions
 - 9b8d199 [2012-05-19 23:03:16 -0500] Add missing costs for PSI moves
 - b8f9ac4 [2012-05-19 23:00:42 -0500] Eliminate illogical
IS_ASM_LOGICAL_LINE_SEPARATOR
 - 4615bbd [2012-05-19 22:59:08 -0500] Eliminate cloned string output,
re-use elfos implementation
 - 60fb91c [2012-05-19 22:39:23 -0500] Remove unreferenced variable
 - 7cad4e9 [2012-05-19 22:39:09 -0500] Place function definitions in
Target Macros section order
 - b1d2b43 [2012-05-19 12:47:40 -0500] Hook in section definitions
 - 3d5ae09 [2012-05-19 12:22:10 -0500] Hook in near/far/attributes
 - 262194b [2012-05-18 12:28:38 -0500] Update output templates to
support D20 operands
 - 00295b2 [2012-05-18 16:47:09 -0500] Jump vector elements are the
same mode as function pointers
 - 3c19bb6 [2012-05-18 09:28:35 -0500] Check for overflow in snprintf
 - 919f3a1 [2012-05-18 07:27:11 -0500] Check that pointer modes are as expected
 - 0d9fa88 [2012-05-18 07:26:18 -0500] Start generating -md20 multilibs
 - c014f4b [2012-05-17 17:17:32 -0500] Document alternative PSI
definition and support it in code.
 - ee89bf7 [2012-05-17 16:41:56 -0500] First stage toward forcing use
of PSI alone as a large pointer type
 - b03d6bf [2012-05-17 16:41:32 -0500] Correct RTL to note status
register is always HImode
 - 7dd82aa [2012-05-17 09:21:47 -0500] Update use of sp to accommodate
wide pointers
 - bbddf11 [2012-05-16 11:55:08 -0500] Recognize variant insn based on
pointer size
 - 609aa21 [2012-05-16 11:53:50 -0500] Use genericized expanders when
operating on Pmode values
 - d255d09 [2012-05-16 11:52:08 -0500] Accept SImode (=ptr_mode, vice
Pmode) as valid for pointers
 - 4bb8063 [2012-05-16 10:31:06 -0500] Share type mode calculations,
and use HImode for c16

gdb: no changes

msp430-libc: changes from msp430libc-20120514 to msp430libc-20120606:
 - 13dedfe [2012-06-06 07:16:10 -0500] Regenerate
 - c6eda54 [2012-06-06 07:16:09 -0500] Update version number and release notes
 - 5e7dc3c [2012-06-05 13:34:12 -0500] PTR format depends on -md20 not -ma20
 - c322064 [2012-06-05 10:47:45 -0500] Replace old decls with prototype decls
 - 465e652 [2012-06-02 21:34:11 -0500] Correct PTR formats when -ma20 in effect
 - d03bfac [2012-05-21 17:01:00 -0500] Update version number and regenerate
 - 4320748 [2012-04-27 14:38:08 -0500] Restore dropped: Add
-fdata-sections and -ffunction-sections
 - 2fecb1c [2012-05-19 11:56:22 -0500] Fix source issues related to
pointer/integer conversions
 - 9bc73e8 [2012-05-17 09:23:04 -0500] Updates to reflect potential
for 20-bit pointer types

msp430mcu: changes from msp430mcu-20120514 to msp430mcu-20120606:
 - a1d2eed [2012-06-06 07:17:11 -0500] Regenerate
 - f3d8f50 [2012-06-06 07:17:05 -0500] Update version number and release notes
 - 28ab4d3 [2012-06-06 06:59:13 -0500] Regenerate
 - d6fca64 [2012-05-31 17:25:13 -0500] Add memory model header constants

------------------------------------------------------------------------------
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and 
threat landscape has changed and how IT managers can respond. Discussions 
will include endpoint security, mobile security and the latest in malware 
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
_______________________________________________
Mspgcc-users mailing list
Mspgcc-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mspgcc-users

Reply via email to