This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: RFA: Update xstormy16's combinebnp() function for new insn sequences


Hi Geoff,

This looks OK,

Thanks - I have checked it in.


although it should really have a testcase.

How about this patch ? It adds two new tests into a new directory gcc/testsuite/gcc.target/xstormy16...


Cheers
  Nick

gcc/testsuite/ChangeLog
2004-11-19  Nick Clifton  <nickc@redhat.com>

	* gcc.target/xstormy16: New test directory.
	* gcc.target/xstormy16/xstormy16.exp: Run the new tests.
	* gcc.target/xstormy16/bp.c: Check the generation of bp
	instructions.
	* gcc.target/xstormy16/below_100.c: Check the generation of bp and
	bn instructions and the BELOW100 attribute.
*** /dev/null	2004-06-24 19:04:38.000000000 +0100
--- gcc/testsuite/gcc.target/xstormy16/xstormy16.exp	2004-11-19 09:57:36.000000000 +0000
***************
*** 0 ****
--- 1,23 ----
+ # Tests for the xstormy16
+ 
+ if {![istarget xstormy16-*-*]} {
+     return 0
+ }
+ 
+ load_lib gcc-dg.exp
+ 
+ # If a testcase doesn't have special options, use these.
+ global DEFAULT_CFLAGS
+ if ![info exists DEFAULT_CFLAGS] then {
+     set DEFAULT_CFLAGS " -ansi -pedantic-errors"
+ }
+ 
+ # Initialize `dg'.
+ dg-init
+ 
+ # Main loop.
+ dg-runtest [lsort [glob -nocomplain $srcdir/$subdir/*.\[cS\]]] \
+ 	"" $DEFAULT_CFLAGS
+ 
+ # All done.
+ dg-finish
*** /dev/null	2004-06-24 19:04:38.000000000 +0100
--- gcc/testsuite/gcc.target/xstormy16/bp.c	2004-11-19 10:27:27.000000000 +0000
***************
*** 0 ****
--- 1,34 ----
+ /* { dg-do compile } */
+ /* { dg-options "-O2" } */
+ /* { dg-final { scan-assembler "bp " } } */
+ 
+ #define a_val (*((volatile unsigned char *) 0x7f14))
+ #define b_val (*((volatile unsigned char *) 0x7f10))
+ 
+ unsigned char * a_ptr = (unsigned char *) 0x7f14;
+ unsigned char * b_ptr = (unsigned char *) 0x7f10;
+ 
+ int
+ foo (void)
+ {
+   if (a_val & 0x08)
+     {
+       if (b_val & 0x08)
+ 	return -1;
+ 
+       return 0;
+     }
+ 
+   return -1;
+ }
+ 
+ int
+ bar (void)
+ {
+   *a_ptr = 0x08;
+   *b_ptr = 0xf7;
+ 
+   return foo ();
+ }
+ 
+ 
*** /dev/null	2004-06-24 19:04:38.000000000 +0100
--- gcc/testsuite/gcc.target/xstormy16/below_100.c	2004-11-19 10:33:41.000000000 +0000
***************
*** 0 ****
--- 1,30 ----
+ /* { dg-do compile } */
+ /* { dg-options "-O2" } */
+ /* { dg-final { scan-assembler "bn " } } */
+ /* { dg-final { scan-assembler "bp " } } */
+ 
+ unsigned short   a_below __attribute__((__BELOW100__));
+ unsigned short   b_below __attribute__((__BELOW100__));
+ unsigned short * a_ptr = & a_below;
+ unsigned short * b_ptr = & b_below;
+ 
+ char *
+ foo (void)
+ {
+   if (a_below & 0x0100)
+     {
+       if (b_below & 0x0100)
+ 	return "Fail";
+       return "Success";
+     }
+ 
+   return "Fail";
+ }
+ 
+ char *
+ bar (void)
+ {
+   *a_ptr = 0x0100;
+   *b_ptr = 0xfeff;
+   return foo ();
+ }

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]