=?UTF-8?Q?Andr=C3=A9=20Hentschel=20?=: winebuild: Remove SPARC support.

Alexandre Julliard julliard at winehq.org
Mon Mar 11 16:24:52 CDT 2013


Module: wine
Branch: master
Commit: 0ee8e2b5b1f633d51cbcc55d46cfe968665b683e
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=0ee8e2b5b1f633d51cbcc55d46cfe968665b683e

Author: André Hentschel <nerv at dawncrow.de>
Date:   Fri Mar  8 21:35:13 2013 +0100

winebuild: Remove SPARC support.

---

 tools/winebuild/build.h  |    2 +-
 tools/winebuild/import.c |   34 ----------------------------------
 tools/winebuild/main.c   |    2 --
 tools/winebuild/spec32.c |   11 +----------
 tools/winebuild/utils.c  |    4 ----
 5 files changed, 2 insertions(+), 51 deletions(-)

diff --git a/tools/winebuild/build.h b/tools/winebuild/build.h
index 359428f..fd56c8c 100644
--- a/tools/winebuild/build.h
+++ b/tools/winebuild/build.h
@@ -140,7 +140,7 @@ typedef struct
 
 enum target_cpu
 {
-    CPU_x86, CPU_x86_64, CPU_SPARC, CPU_POWERPC, CPU_ARM, CPU_ARM64, CPU_LAST = CPU_ARM64
+    CPU_x86, CPU_x86_64, CPU_POWERPC, CPU_ARM, CPU_ARM64, CPU_LAST = CPU_ARM64
 };
 
 enum target_platform
diff --git a/tools/winebuild/import.c b/tools/winebuild/import.c
index 81325e9..fab4158 100644
--- a/tools/winebuild/import.c
+++ b/tools/winebuild/import.c
@@ -648,28 +648,6 @@ static void output_import_thunk( const char *name, const char *table, int pos )
     case CPU_x86_64:
         output( "\tjmpq *%s+%d(%%rip)\n", table, pos );
         break;
-    case CPU_SPARC:
-        if ( !UsePIC )
-        {
-            output( "\tsethi %%hi(%s+%d), %%g1\n", table, pos );
-            output( "\tld [%%g1+%%lo(%s+%d)], %%g1\n", table, pos );
-            output( "\tjmp %%g1\n" );
-            output( "\tnop\n" );
-        }
-        else
-        {
-            /* Hmpf.  Stupid sparc assembler always interprets global variable
-               names as GOT offsets, so we have to do it the long way ... */
-            output( "\tsave %%sp, -96, %%sp\n" );
-            output( "0:\tcall 1f\n" );
-            output( "\tnop\n" );
-            output( "1:\tsethi %%hi(%s+%d-0b), %%g1\n", table, pos );
-            output( "\tor %%g1, %%lo(%s+%d-0b), %%g1\n", table, pos );
-            output( "\tld [%%g1+%%o7], %%g1\n" );
-            output( "\tjmp %%g1\n" );
-            output( "\trestore\n" );
-        }
-        break;
     case CPU_ARM:
         output( "\tldr IP,[PC,#0]\n");
         output( "\tldr PC,[IP,#%d]\n", pos);
@@ -987,13 +965,6 @@ static void output_delayed_import_thunks( const DLLSPEC *spec )
         output_cfi( ".cfi_adjust_cfa_offset -88" );
         output( "\tjmp *%%rax\n" );
         break;
-    case CPU_SPARC:
-        output( "\tsave %%sp, -96, %%sp\n" );
-        output( "\tcall %s\n", asm_name("__wine_spec_delay_load") );
-        output( "\tmov %%g1, %%o0\n" );
-        output( "\tjmp %%o0\n" );
-        output( "\trestore\n" );
-        break;
     case CPU_ARM:
         output( "\tstmfd  SP!, {r4-r10,FP,LR}\n" );
         output( "\tmov LR,PC\n");
@@ -1094,11 +1065,6 @@ static void output_delayed_import_thunks( const DLLSPEC *spec )
                 output( "\tmovq $%d,%%rax\n", (idx << 16) | j );
                 output( "\tjmp %s\n", asm_name("__wine_delay_load_asm") );
                 break;
-            case CPU_SPARC:
-                output( "\tset %d, %%g1\n", (idx << 16) | j );
-                output( "\tb,a %s\n", asm_name("__wine_delay_load_asm") );
-                output( "\tnop\n" );
-                break;
             case CPU_ARM:
                 output( "\tstmfd  SP!, {r0-r3}\n" );
                 output( "\tmov r0, #%d\n", idx );
diff --git a/tools/winebuild/main.c b/tools/winebuild/main.c
index 39dbe62..16b4165 100644
--- a/tools/winebuild/main.c
+++ b/tools/winebuild/main.c
@@ -52,8 +52,6 @@ int unwind_tables = 0;
 enum target_cpu target_cpu = CPU_x86;
 #elif defined(__x86_64__)
 enum target_cpu target_cpu = CPU_x86_64;
-#elif defined(__sparc__)
-enum target_cpu target_cpu = CPU_SPARC;
 #elif defined(__powerpc__)
 enum target_cpu target_cpu = CPU_POWERPC;
 #elif defined(__arm__)
diff --git a/tools/winebuild/spec32.c b/tools/winebuild/spec32.c
index f6c8cd2..ab69797 100644
--- a/tools/winebuild/spec32.c
+++ b/tools/winebuild/spec32.c
@@ -38,7 +38,6 @@
 #define IMAGE_FILE_MACHINE_AMD64   0x8664
 #define IMAGE_FILE_MACHINE_ARMNT   0x01C4
 /* Wine extension */
-#define IMAGE_FILE_MACHINE_SPARC   0x2000
 #define IMAGE_FILE_MACHINE_ARM64   0x01C5
 
 #define IMAGE_SIZEOF_NT_OPTIONAL32_HEADER 224
@@ -439,11 +438,6 @@ static void output_asm_constructor( const char *constructor )
             output( "\n\t.section \".init\",\"ax\"\n" );
             output( "\tcall %s\n", asm_name(constructor) );
             break;
-        case CPU_SPARC:
-            output( "\n\t.section \".init\",\"ax\"\n" );
-            output( "\tcall %s\n", asm_name(constructor) );
-            output( "\tnop\n" );
-            break;
         case CPU_ARM:
             output( "\n\t.section \".text\",\"ax\"\n" );
             output( "\tblx %s\n", asm_name(constructor) );
@@ -488,7 +482,6 @@ void output_module( DLLSPEC *spec )
         {
         case CPU_x86:
         case CPU_x86_64:
-        case CPU_SPARC:
             output( "\n\t.section \".init\",\"ax\"\n" );
             output( "\tjmp 1f\n" );
             break;
@@ -520,10 +513,9 @@ void output_module( DLLSPEC *spec )
     {
     case CPU_x86:     machine = IMAGE_FILE_MACHINE_I386; break;
     case CPU_x86_64:  machine = IMAGE_FILE_MACHINE_AMD64; break;
+    case CPU_POWERPC: machine = IMAGE_FILE_MACHINE_POWERPC; break;
     case CPU_ARM:     machine = IMAGE_FILE_MACHINE_ARMNT; break;
     case CPU_ARM64:   machine = IMAGE_FILE_MACHINE_ARM64; break;
-    case CPU_POWERPC: machine = IMAGE_FILE_MACHINE_POWERPC; break;
-    case CPU_SPARC:   machine = IMAGE_FILE_MACHINE_SPARC; break;
     }
     output( "\t%s 0x%04x\n",              /* Machine */
              get_asm_short_keyword(), machine );
@@ -709,7 +701,6 @@ void output_fake_module( DLLSPEC *spec )
     case CPU_x86:     put_word( IMAGE_FILE_MACHINE_I386 ); break;
     case CPU_x86_64:  put_word( IMAGE_FILE_MACHINE_AMD64 ); break;
     case CPU_POWERPC: put_word( IMAGE_FILE_MACHINE_POWERPC ); break;
-    case CPU_SPARC:   put_word( IMAGE_FILE_MACHINE_SPARC ); break;
     case CPU_ARM:     put_word( IMAGE_FILE_MACHINE_ARMNT ); break;
     case CPU_ARM64:   put_word( IMAGE_FILE_MACHINE_ARM64 ); break;
     }
diff --git a/tools/winebuild/utils.c b/tools/winebuild/utils.c
index bab2b85..44bd92d 100644
--- a/tools/winebuild/utils.c
+++ b/tools/winebuild/utils.c
@@ -56,7 +56,6 @@ static const struct
     { "i786",    CPU_x86 },
     { "amd64",   CPU_x86_64 },
     { "x86_64",  CPU_x86_64 },
-    { "sparc",   CPU_SPARC },
     { "powerpc", CPU_POWERPC },
     { "arm",     CPU_ARM },
     { "arm64",   CPU_ARM64 },
@@ -892,7 +891,6 @@ unsigned int get_alignment(unsigned int align)
     {
     case CPU_x86:
     case CPU_x86_64:
-    case CPU_SPARC:
         if (target_platform != PLATFORM_APPLE) return align;
         /* fall through */
     case CPU_POWERPC:
@@ -917,7 +915,6 @@ unsigned int get_page_size(void)
     case CPU_POWERPC: return 4096;
     case CPU_ARM:     return 4096;
     case CPU_ARM64:   return 4096;
-    case CPU_SPARC:   return 8192;
     }
     /* unreached */
     assert(0);
@@ -931,7 +928,6 @@ unsigned int get_ptr_size(void)
     {
     case CPU_x86:
     case CPU_POWERPC:
-    case CPU_SPARC:
     case CPU_ARM:
         return 4;
     case CPU_x86_64:




More information about the wine-cvs mailing list