diff -Nru openjdk.orig/hotspot/make/linux/makefiles/defs.make openjdk/hotspot/make/linux/makefiles/defs.make
--- openjdk.orig/hotspot/make/linux/makefiles/defs.make	2008-06-22 22:28:06.000000000 +0100
+++ openjdk/hotspot/make/linux/makefiles/defs.make	2008-06-22 22:35:27.000000000 +0100
@@ -73,6 +73,14 @@
   HS_ARCH            = sparc
 endif
 
+# sparc
+ifeq ($(ARCH), sparc)
+  ARCH_DATA_MODEL  = 32
+  PLATFORM         = linux-sparc
+  VM_PLATFORM      = linux_sparc
+  HS_ARCH          = sparc
+endif
+
 # x86_64
 ifeq ($(ARCH), x86_64) 
   ifeq ($(ARCH_DATA_MODEL), 64)
diff -Nru openjdk.orig/hotspot/src/cpu/sparc/vm/c1_LIRGenerator_sparc.cpp openjdk/hotspot/src/cpu/sparc/vm/c1_LIRGenerator_sparc.cpp
--- openjdk.orig/hotspot/src/cpu/sparc/vm/c1_LIRGenerator_sparc.cpp	2008-06-22 20:44:41.000000000 +0100
+++ openjdk/hotspot/src/cpu/sparc/vm/c1_LIRGenerator_sparc.cpp	2008-06-22 22:35:27.000000000 +0100
@@ -1112,20 +1112,12 @@
 
 void LIRGenerator::volatile_field_store(LIR_Opr value, LIR_Address* address,
                                         CodeEmitInfo* info) {
-#ifdef _LP64
-  __ store(value, address, info);
-#else
   __ volatile_store_mem_reg(value, address, info);
-#endif
 }
 
 void LIRGenerator::volatile_field_load(LIR_Address* address, LIR_Opr result,
                                        CodeEmitInfo* info) {
-#ifdef _LP64
-  __ load(address, result, info);
-#else
   __ volatile_load_mem_reg(address, result, info);
-#endif
 }
 
 
