which included commits to RCS files with non-trunk default branches. git-svn-id: svn://10.65.10.50/trunk@5403 c028cbd2-c16b-5b4b-a496-9718f37d4682
		
			
				
	
	
		
			63 lines
		
	
	
		
			2.6 KiB
		
	
	
	
		
			Plaintext
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			63 lines
		
	
	
		
			2.6 KiB
		
	
	
	
		
			Plaintext
		
	
	
		
			Executable File
		
	
	
	
	
Date: Mon, 28 Aug 1995 23:53:23 CET +0100
 | 
						|
From: "Christian Spieler, Institut fuer Kernphysik, Schlossgartenstr. 9,
 | 
						|
      D-64289 Darmstadt" <SPIELER@linac.ikp.physik.th-darmstadt.de>
 | 
						|
Subject: More MSC 5.1 related patches for UnZip 5.20f2
 | 
						|
 | 
						|
 | 
						|
D) I want to suggest two small patches to allow the use of
 | 
						|
   full optimization (including loop optimization) when compiling UnZip
 | 
						|
   with MSC (5.1, and probably newer). There are only two small pieces
 | 
						|
   of code (containing to deeply nested loops) that break MSC 5.1's loop
 | 
						|
   optimization. I have guarded these loops with "#pragma loop_opt (off)"
 | 
						|
   to allow loop optimization for the rest of the code. Here are the patches:
 | 
						|
 | 
						|
===================== cut here ========================
 | 
						|
diff -c ./inflate.c ./modif/inflate.c
 | 
						|
*** ./inflate.c	Thu Oct 05 14:57:38 1995
 | 
						|
--- ./modif/inflate.c	Thu Oct 05 14:58:24 1995
 | 
						|
***************
 | 
						|
*** 1162,1173 ****
 | 
						|
--- 1162,1179 ----
 | 
						|
          {                       /* too few codes for k-w bit table */
 | 
						|
            f -= a + 1;           /* deduct codes from patterns left */
 | 
						|
            xp = c + k;
 | 
						|
+ #if defined (MSC)
 | 
						|
+ #pragma loop_opt (off)
 | 
						|
+ #endif /* MS C compilers */
 | 
						|
            while (++j < z)       /* try smaller tables up to z bits */
 | 
						|
            {
 | 
						|
              if ((f <<= 1) <= *++xp)
 | 
						|
                break;            /* enough codes to use up j bits */
 | 
						|
              f -= *xp;           /* else deduct codes from patterns */
 | 
						|
            }
 | 
						|
+ #if defined (MSC)
 | 
						|
+ #pragma loop_opt ()
 | 
						|
+ #endif /* MS C compilers */
 | 
						|
          }
 | 
						|
          if ((unsigned)w + j > el && (unsigned)w < el)
 | 
						|
            j = el - w;           /* make EOB code end at table */
 | 
						|
diff -c ./zipinfo.c ./modif/zipinfo.c
 | 
						|
*** ./zipinfo.c	Thu Oct 05 14:51:58 1995
 | 
						|
--- ./modif/zipinfo.c	Thu Oct 05 14:52:42 1995
 | 
						|
***************
 | 
						|
*** 1134,1145 ****
 | 
						|
--- 1134,1151 ----
 | 
						|
                      workspace[10] = 'E';
 | 
						|
  
 | 
						|
                  p = attribs;
 | 
						|
+ #if defined (MSC) && (!defined (_MSC_VER) || _MSC_VER < 600)
 | 
						|
+ #pragma loop_opt (off)
 | 
						|
+ #endif /* MS C, Version < 6.00 */
 | 
						|
                  for (k = j = 0;  j < 3;  ++j) {     /* groups of permissions */
 | 
						|
                      for (i = 0;  i < 4;  ++i, ++k)  /* perms within a group */
 | 
						|
                          if (workspace[k])
 | 
						|
                              *p++ = workspace[k];
 | 
						|
                      *p++ = ',';                     /* group separator */
 | 
						|
                  }
 | 
						|
+ #if defined (MSC) && (!defined (_MSC_VER) || _MSC_VER < 600)
 | 
						|
+ #pragma loop_opt ()
 | 
						|
+ #endif /* MS C, Version < 6.00 */
 | 
						|
                  *--p = ' ';   /* overwrite last comma */
 | 
						|
                  if ((p - attribs) < 12)
 | 
						|
                      sprintf(&attribs[12], "%d.%d", hostver/10, hostver%10);
 |