CVS: gcc/gcc-4.1.1/gcc/config/msp430 msp430.c, 1.1, 1.2 msp430.h, 1.1, 1.2 msp430.md, 1.1, 1.2 t-msp430, 1.1, 1.2

Christopher Cole <[email protected]> Wed, 14 Jun 2006 22:12:13 -0700
Newsgroups gmane.comp.hardware.texas-instruments.msp430.gcc.cvs
Message-ID <[email protected]>
Update of /cvsroot/mspgcc/gcc/gcc-4.1.1/gcc/config/msp430
In directory sc8-pr-cvs7.sourceforge.net:/tmp/cvs-serv5147/gcc/config/msp430

Modified Files:
	msp430.c msp430.h msp430.md t-msp430 
Log Message:
Rolled in changes made to earlier toolchains (mspgcc-3.x.x) after the
initial work on mspgcc-4.0.2 had begin in January 2006.



Index: msp430.c
===================================================================
RCS file: /cvsroot/mspgcc/gcc/gcc-4.1.1/gcc/config/msp430/msp430.c,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -w -d -r1.1 -r1.2
--- msp430.c	15 Jun 2006 02:30:02 -0000	1.1
+++ msp430.c	15 Jun 2006 05:12:10 -0000	1.2
@@ -138,7 +138,9 @@
   MSP430_ISA_1 = 1,
   MSP430_ISA_2 = 2,
   MSP430_ISA_110 = 110,
+  MSP430_ISA_200 = 200,
   MSP430_ISA_210 = 210,
+  MSP430_ISA_220 = 220,
   MSP430_ISA_11 = 11,
   MSP430_ISA_12 = 12,
   MSP430_ISA_13 = 13,
@@ -151,7 +153,8 @@
   MSP430_ISA_41 = 41,
   MSP430_ISA_42 = 42,
   MSP430_ISA_43 = 43,
-  MSP430_ISA_44 = 44
+  MSP430_ISA_44 = 44,
+  MSP430_ISA_46 = 46
 };
 
 struct mcu_type_s
@@ -202,11 +205,24 @@
   {"msp430x1611", MSP430_ISA_16, 1},
   {"msp430x1612", MSP430_ISA_16, 1},
 
+  {"msp430x2001", MSP430_ISA_200, 0},
+  {"msp430x2011", MSP430_ISA_200, 0},
+
+  {"msp430x2002", MSP430_ISA_200, 0},
+  {"msp430x2012", MSP430_ISA_200, 0},
+
+  {"msp430x2003", MSP430_ISA_200, 0},
+  {"msp430x2013", MSP430_ISA_200, 0},
+
   {"msp430x2101", MSP430_ISA_210, 0},
   {"msp430x2111", MSP430_ISA_210, 0},
   {"msp430x2121", MSP430_ISA_210, 0},
   {"msp430x2131", MSP430_ISA_210, 0},
 
+  {"msp430x2234", MSP430_ISA_220, 0},
+  {"msp430x2254", MSP430_ISA_220, 0},
+  {"msp430x2274", MSP430_ISA_220, 0},
+
   {"msp430x311", MSP430_ISA_31, 0},
   {"msp430x312", MSP430_ISA_31, 0},
   {"msp430x313", MSP430_ISA_31, 0},
@@ -253,6 +269,11 @@
   {"msp430x448", MSP430_ISA_44, 1},
   {"msp430x449", MSP430_ISA_44, 1},
 
+  {"msp430xG4616", MSP430_ISA_46, 1},
+  {"msp430xG4617", MSP430_ISA_46, 1},
+  {"msp430xG4618", MSP430_ISA_46, 1},
+  {"msp430xG4619", MSP430_ISA_46, 1},
+
   {NULL, 0, 0}
 };
 
@@ -1338,6 +1359,10 @@
 
 	  print_sub_operand (file, XEXP (addr, 1), code);
 
+	  /* shift if the indirect pointer register is the stack pointer */
+	  if ((code >= 'M' && code <= 'N') && (REGNO (XEXP (addr, 0)) == 1))
+	    shift = code - 'M';
+
 	  if (shift)
 	    fprintf (file, "+%d", shift * ml);
 

Index: msp430.h
===================================================================
RCS file: /cvsroot/mspgcc/gcc/gcc-4.1.1/gcc/config/msp430/msp430.h,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -w -d -r1.1 -r1.2
--- msp430.h	15 Jun 2006 02:30:02 -0000	1.1
+++ msp430.h	15 Jun 2006 05:12:10 -0000	1.2
@@ -627,24 +627,9 @@
 
 #define CPP_SPEC "\
   %{!mmcu*|mmcu=msp1:%(cpp_msp1)} \
-  %{mmcu=msp2:%(cpp_msp2)} \
+  %{mmcu=msp2:%(cpp_msp2) -DMSP430_HAS_HWMUL} \
   %{mmcu=msp430x*:-D__MSP430_%* } \
   %{posix:-D_POSIX_SOURCE}"
-  /*
-  %{mmcu=msp430x110|mmcu=msp430x112|mmcu=msp430x1101|mmcu=msp430x1111|mmcu=msp430x1121|\
-    mmcu=msp430x1122|mmcu=msp430x1132|mmcu=msp430x122|mmcu=msp430x123|mmcu=msp430x1222|\
-    mmcu=msp430x1232|mmcu=msp430x133|mmcu=msp430x135|mmcu=msp430x1331|mmcu=msp430x1351|\
-    mmcu=msp430x155|mmcu=msp430x156|mmcu=msp430x157|mmcu=msp430x311|mmcu=msp430x312|\
-    mmcu=msp430x313|mmcu=msp430x314|mmcu=msp430x315|mmcu=msp430x323|mmcu=msp430x325|\
-    mmcu=msp430x412|mmcu=msp430x413|mmcu=msp430x415|mmcu=msp430x417|mmcu=msp430xW423|\
-    mmcu=msp430xW425|mmcu=msp430xW427|mmcu=msp430xG437|mmcu=msp430xG438|mmcu=msp430xG439|\
-    mmcu=msp430x435|mmcu=msp430x436:%(cpp_msp1)} \
-  %{mmcu=msp430xE423|mmcu=msp430xE425|mmcu=msp430xE427|mmcu=msp430x336|mmcu=msp430x337|\
-    mmcu=msp430x167|mmcu=msp430x168|mmcu=msp430x169|mmcu=msp430x1610|mmcu=msp430x1611|\
-    mmcu=msp430x1612|mmcu=msp430x147|mmcu=msp430x148|mmcu=msp430x149|mmcu=msp430x1471|\
-    mmcu=msp430x1481|mmcu=msp430x1491|mmcu=msp430x437|mmcu=msp430x447|mmcu=msp430x448|\
-    mmcu=msp430x449:%(cpp_msp2)} \
-  */
 
 
 #define CC1_SPEC "%{profile:-p}"
@@ -679,33 +664,27 @@
   %{mmcu=msp430x1610:-m msp430B --defsym __stack=0x2500 -Ttext=0x8000 -Tdata=0x1100 } \
   %{mmcu=msp430x1611:-m msp430B --defsym __stack=0x3900 -Ttext=0x4000 -Tdata=0x1100 } \
   %{mmcu=msp430x1612:-m msp430B --defsym __stack=0x2500 -Ttext=0x2500 -Tdata=0x1100 } \
-  %{mmcu=msp430x149|mmcu=msp430x169|mmcu=msp430xG439|mmcu=msp430x449:-m msp430A --defsym __stack=0x0a00 -Ttext=0x1100 }"
+  %{mmcu=msp430x149|mmcu=msp430x169|mmcu=msp430xG439|mmcu=msp430x449:-m msp430A --defsym __stack=0x0a00 -Ttext=0x1100 } \
+  %{mmcu=msp430x2001:-m msp430A --defsym __stack=0xffff -Ttext=0xffff -Tdata=0xffff } \
+  %{mmcu=msp430x2011:-m msp430A --defsym __stack=0xffff -Ttext=0xffff -Tdata=0xffff } \
+  %{mmcu=msp430x2002:-m msp430A --defsym __stack=0xffff -Ttext=0xffff -Tdata=0xffff } \
+  %{mmcu=msp430x2012:-m msp430A --defsym __stack=0xffff -Ttext=0xffff -Tdata=0xffff } \
+  %{mmcu=msp430x2003:-m msp430A --defsym __stack=0xffff -Ttext=0xffff -Tdata=0xffff } \
+  %{mmcu=msp430x2013:-m msp430A --defsym __stack=0xffff -Ttext=0xffff -Tdata=0xffff } \
+  %{mmcu=msp430x2101:-m msp430A --defsym __stack=0xffff -Ttext=0xfc00 -Tdata=0x0200 } \
+  %{mmcu=msp430x2111:-m msp430A --defsym __stack=0xffff -Ttext=0xf800 -Tdata=0x0200 } \
+  %{mmcu=msp430x2121:-m msp430A --defsym __stack=0xffff -Ttext=0xf000 -Tdata=0x0200 } \
+  %{mmcu=msp430x2131:-m msp430A --defsym __stack=0xffff -Ttext=0xe000 -Tdata=0x0200 } \
+  %{mmcu=msp430x2234:-m msp430A --defsym __stack=0xffff -Ttext=0xffff -Tdata=0xffff } \
+  %{mmcu=msp430x2254:-m msp430A --defsym __stack=0xffff -Ttext=0xffff -Tdata=0xffff } \
+  %{mmcu=msp430x2274:-m msp430A --defsym __stack=0xffff -Ttext=0xffff -Tdata=0xffff } \
+  %{mmcu=msp430xG4616:-m msp430A --defsym __stack=0x1100 -Ttext=0x2100 -Tdata=0xffff } \
+  %{mmcu=msp430xG4617:-m msp430A --defsym __stack=0x1100 -Ttext=0x3100 -Tdata=0xffff } \
+  %{mmcu=msp430xG4618:-m msp430A --defsym __stack=0x1100 -Ttext=0x3100 -Tdata=0xffff } \
+  %{mmcu=msp430xG4619:-m msp430A --defsym __stack=0x1100 -Ttext=0x2100 -Tdata=0xffff }"
 
 /*
 #define LINK_SPEC "\
-  %{!mmcu*|mmcu=msp1|mmcu=msp430x1101|mmcu=msp430x110:-m msp430s1k128 } \
-  %{mmcu=msp430x1111|mmcu=msp430x311:-m msp430s2k128 } \
-  %{mmcu=msp430x1121|mmcu=msp430x1122|mmcu=msp430x112|mmcu=msp430x1222|mmcu=msp430x122| \
-    mmcu=msp430x1232|mmcu=msp430x123|mmcu=msp430x312|mmcu=msp430x412|mmcu=msp430xE423| \
-    mmcu=msp430xW423:-m msp430s4k256 } \
-  %{mmcu=msp430x1132|mmcu=msp430x1331|mmcu=msp430x133|mmcu=msp430x313| \
-    mmcu=msp430x323|mmcu=msp430x413:-m msp430s8k256 } \
-  %{mmcu=msp430x314:-m msp430s12k512 } \
-  %{mmcu=msp430x1351|mmcu=msp430x135|mmcu=msp430x155|mmcu=msp430x315|mmcu=msp430x325| \
-    mmcu=msp430x415|mmcu=msp430x435|mmcu=msp430xE425|mmcu=msp430xW425:-m msp430s16k512 } \
-  %{mmcu=msp2|mmcu=msp430x156|mmcu=msp430x336|mmcu=msp430x436:-m msp430s24k1024 } \
-  %{mmcu=msp430x147|mmcu=msp430x157|mmcu=msp430x167|mmcu=msp430x337|mmcu=msp430x417| \
-    mmcu=msp430x437|mmcu=msp430x447|mmcu=msp430xE427|mmcu=msp430xG437|mmcu=msp430xW427| \
-    mmcu=msp430x1471:-m msp430s32k1024 } \
-  %{mmcu=msp430x1610:-m msp430s32k5k } \
-  %{mmcu=msp430x1611:-m msp430s48k10k } \
-  %{mmcu=msp430x1481|mmcu=msp430x148|mmcu=msp430x1491|mmcu=msp430x168|mmcu=msp430x448| \
-    mmcu=msp430xG438:-m msp430s48k2048 } \
-  %{mmcu=msp430x1612:-m msp430s56k5k } \
-  %{mmcu=msp430x149|mmcu=msp430x169|mmcu=msp430xG439|mmcu=msp430x449:-m msp430s60k2048 }"
-*/
-/*
-#define LINK_SPEC "\
 %{!mmcu*:-m msp430s1k128} \
   %{mmcu=msp1:-m msp430s1k128} \
   %{mmcu=msp2:-m msp430s8k256} \
@@ -766,7 +745,25 @@
   %{mmcu=msp430x437:-m msp430s32k1024 } \
   %{mmcu=msp430x447:-m msp430s32k1024 } \
   %{mmcu=msp430x448:-m msp430s48k2048 } \
-  %{mmcu=msp430x449:-m msp430s60k2048 }"
+  %{mmcu=msp430x449:-m msp430s60k2048 } \
+  %{mmcu=msp430x2001:-m msp430s1k128 } \
+  %{mmcu=msp430x2011:-m msp430s2k128 } \
+  %{mmcu=msp430x2002:-m msp430s1k128 } \
+  %{mmcu=msp430x2012:-m msp430s2k128 } \
+  %{mmcu=msp430x2003:-m msp430s1k128 } \
+  %{mmcu=msp430x2013:-m msp430s2k128 } \
+  %{mmcu=msp430x2101:-m msp430s1k128 } \
+  %{mmcu=msp430x2111:-m msp430s2k128 } \
+  %{mmcu=msp430x2121:-m msp430s4k256 } \
+  %{mmcu=msp430x2131:-m msp430s8k256 } \
+  %{mmcu=msp430x2234:-m msp430s8k512 } \
+  %{mmcu=msp430x2254:-m msp430s16k512 } \
+  %{mmcu=msp430x2274:-m msp430s32k1024 } \
+  %{mmcu=msp430xG4616:-m msp430s92k4096 } \
+  %{mmcu=msp430xG4617:-m msp430s92k8192 } \
+  %{mmcu=msp430xG4618:-m msp430s116k8192 } \
+  %{mmcu=msp430xG4619:-m msp430s120k4096 } \
+"
 */
 
 

Index: msp430.md
===================================================================
RCS file: /cvsroot/mspgcc/gcc/gcc-4.1.1/gcc/config/msp430/msp430.md,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -w -d -r1.1 -r1.2
--- msp430.md	15 Jun 2006 02:30:02 -0000	1.1
+++ msp430.md	15 Jun 2006 05:12:10 -0000	1.2
@@ -35,7 +35,8 @@
 ;;  D	   3		    6
 ;;  E  adds nothing to reg but used only with (mem:hi (reg:hi))
 ;;  F  no trim array
-
+;;  M  Add 0 to address if using stack pointer
+;;  N  Add 2 to address if using stack pointer
 ;;  Extra constarains:
 ;;  P  hardware constants: -1,0,+1,+2,+4,+8
 ;;  Q  Indexed destination register as X(Rn)
@@ -467,7 +468,7 @@
    (call (mem:HI (match_operand:HI 1 "general_operand" "rP,R,mi"))
 	 (match_operand:HI 2 "general_operand" "X,X,X")))]
 ""
- "call\\t%1"
+ "call\\t%N1"
 [ (set_attr "length" "1,1,2")
    (set_attr "cc" "clobber")])
 

Index: t-msp430
===================================================================
RCS file: /cvsroot/mspgcc/gcc/gcc-4.1.1/gcc/config/msp430/t-msp430,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -w -d -r1.1 -r1.2
--- t-msp430	15 Jun 2006 02:30:02 -0000	1.1
+++ t-msp430	15 Jun 2006 05:12:10 -0000	1.2
@@ -71,8 +71,12 @@
 	mmcu?msp1=mmcu?msp430x155  mmcu?msp1=mmcu?msp430x156  mmcu?msp1=mmcu?msp430x157 \
 	mmcu?msp2=mmcu?msp430x167  mmcu?msp2=mmcu?msp430x168  mmcu?msp2=mmcu?msp430x169 \
 	mmcu?msp2=mmcu?msp430x1610 mmcu?msp2=mmcu?msp430x1611 mmcu?msp2=mmcu?msp430x1612 \
+	mmcu?msp1=mmcu?msp430x2001 mmcu?msp1=mmcu?msp430x2011 \
+	mmcu?msp1=mmcu?msp430x2002 mmcu?msp1=mmcu?msp430x2012 \
+	mmcu?msp1=mmcu?msp430x2003 mmcu?msp1=mmcu?msp430x2013 \
 	mmcu?msp1=mmcu?msp430x2101 mmcu?msp1=mmcu?msp430x2111 mmcu?msp1=mmcu?msp430x2121 \
 	mmcu?msp1=mmcu?msp430x2131 \
+	mmcu?msp1=mmcu?msp430x2234 mmcu?msp1=mmcu?msp430x2254 mmcu?msp1=mmcu?msp430x2274 \
 	mmcu?msp1=mmcu?msp430x311  mmcu?msp1=mmcu?msp430x312  mmcu?msp1=mmcu?msp430x313 \
 	mmcu?msp1=mmcu?msp430x314  mmcu?msp1=mmcu?msp430x315 \
 	mmcu?msp1=mmcu?msp430x323  mmcu?msp1=mmcu?msp430x325 \
@@ -85,7 +89,9 @@
 	mmcu?msp1=mmcu?msp430xW423 mmcu?msp1=mmcu?msp430xW425 mmcu?msp1=mmcu?msp430xW427 \
 	mmcu?msp1=mmcu?msp430xG437 mmcu?msp1=mmcu?msp430xG438 mmcu?msp1=mmcu?msp430xG439 \
 	mmcu?msp1=mmcu?msp430x435  mmcu?msp1=mmcu?msp430x436  mmcu?msp1=mmcu?msp430x437 \
-	mmcu?msp2=mmcu?msp430x447  mmcu?msp2=mmcu?msp430x448  mmcu?msp2=mmcu?msp430x449
+	mmcu?msp2=mmcu?msp430x447  mmcu?msp2=mmcu?msp430x448  mmcu?msp2=mmcu?msp430x449 \
+	mmcu?msp2=mmcu?msp430x4616 mmcu?msp2=mmcu?msp430x4617 mmcu?msp2=mmcu?msp430x4618 \
+	mmcu?msp2=mmcu?msp430x4619
 
 MULTILIB_EXCEPTIONS =