changeset in /hg/icedtea: 2007-12-18 Gary Benson <gbenson at redh...

Gary Benson gbenson at redhat.com
Wed Jan 16 07:09:42 PST 2008


changeset 52e05f49560a in /hg/icedtea
details: http://icedtea.classpath.org/hg/icedtea?cmd=changeset;node=52e05f49560a
description:
	2007-12-18  Gary Benson  <gbenson at redhat.com>

		* contrib/templater/*: Wrap all PPC-specifics with conditionals.

		* ports/hotspot/src/cpu/ppc/vm/assembler_ppc.hpp:
		Regenerated from templater (whitespace changes only).
		* ports/hotspot/src/cpu/ppc/vm/assembler_ppc.cpp: Likewise.
		* ports/hotspot/src/cpu/ppc/vm/frame_ppc.hpp: Likewise.
		* ports/hotspot/src/cpu/ppc/vm/registerMap_ppc.hpp: Likewise.
		* ports/hotspot/src/cpu/ppc/vm/stubGenerator_ppc.cpp: Likewise.
		* ports/hotspot/src/cpu/ppc/vm/stubRoutines_ppc.hpp: Likewise.
		* ports/hotspot/src/os_cpu/linux_ppc/vm/os_linux_ppc.cpp: Likewise.

diffstat:

36 files changed, 240 insertions(+), 94 deletions(-)
ChangeLog                                                                     |   13 +++
contrib/templater/generate.py                                                 |   16 ++--
contrib/templater/hotspot/src/cpu/CPU/vm/assembler_CPU.cpp                    |   12 ++-
contrib/templater/hotspot/src/cpu/CPU/vm/assembler_CPU.hpp                    |   34 +++++-----
contrib/templater/hotspot/src/cpu/CPU/vm/bytecodeInterpreter_CPU.inline.hpp   |    7 --
contrib/templater/hotspot/src/cpu/CPU/vm/bytes_CPU.hpp                        |   32 +++++----
contrib/templater/hotspot/src/cpu/CPU/vm/cppInterpreterGenerator_CPU.hpp      |    2 
contrib/templater/hotspot/src/cpu/CPU/vm/cppInterpreter_CPU.cpp               |   16 ++++
contrib/templater/hotspot/src/cpu/CPU/vm/disassembler_CPU.cpp                 |   10 ++
contrib/templater/hotspot/src/cpu/CPU/vm/frame_CPU.cpp                        |    8 ++
contrib/templater/hotspot/src/cpu/CPU/vm/frame_CPU.hpp                        |   14 ++--
contrib/templater/hotspot/src/cpu/CPU/vm/frame_CPU.inline.hpp                 |    8 ++
contrib/templater/hotspot/src/cpu/CPU/vm/globalDefinitions_CPU.hpp            |    2 
contrib/templater/hotspot/src/cpu/CPU/vm/interp_masm_CPU.cpp                  |    2 
contrib/templater/hotspot/src/cpu/CPU/vm/interp_masm_CPU.hpp                  |    6 +
contrib/templater/hotspot/src/cpu/CPU/vm/interpreterRT_CPU.cpp                |   34 +++++++++-
contrib/templater/hotspot/src/cpu/CPU/vm/interpreterRT_CPU.hpp                |   14 +++-
contrib/templater/hotspot/src/cpu/CPU/vm/interpreter_CPU.cpp                  |    8 ++
contrib/templater/hotspot/src/cpu/CPU/vm/registerMap_CPU.hpp                  |    4 -
contrib/templater/hotspot/src/cpu/CPU/vm/register_CPU.cpp                     |   10 ++
contrib/templater/hotspot/src/cpu/CPU/vm/register_CPU.hpp                     |    4 -
contrib/templater/hotspot/src/cpu/CPU/vm/register_definitions_CPU.cpp         |    2 
contrib/templater/hotspot/src/cpu/CPU/vm/relocInfo_CPU.hpp                    |    2 
contrib/templater/hotspot/src/cpu/CPU/vm/sharedRuntime_CPU.cpp                |   10 ++
contrib/templater/hotspot/src/cpu/CPU/vm/stubGenerator_CPU.cpp                |    1 
contrib/templater/hotspot/src/cpu/CPU/vm/stubRoutines_CPU.hpp                 |   10 ++
contrib/templater/hotspot/src/os_cpu/linux_CPU/vm/assembler_linux_CPU.cpp     |    2 
contrib/templater/hotspot/src/os_cpu/linux_CPU/vm/atomic_linux_CPU.inline.hpp |    2 
contrib/templater/hotspot/src/os_cpu/linux_CPU/vm/os_linux_CPU.cpp            |   20 +++--
ports/hotspot/src/cpu/ppc/vm/assembler_ppc.cpp                                |    1 
ports/hotspot/src/cpu/ppc/vm/assembler_ppc.hpp                                |    5 +
ports/hotspot/src/cpu/ppc/vm/frame_ppc.hpp                                    |   10 +-
ports/hotspot/src/cpu/ppc/vm/registerMap_ppc.hpp                              |    4 -
ports/hotspot/src/cpu/ppc/vm/stubGenerator_ppc.cpp                            |    1 
ports/hotspot/src/cpu/ppc/vm/stubRoutines_ppc.hpp                             |    6 -
ports/hotspot/src/os_cpu/linux_ppc/vm/os_linux_ppc.cpp                        |    2 

diffs (truncated from 1220 to 500 lines):

diff -r 2109ddb8dc92 -r 52e05f49560a ChangeLog
--- a/ChangeLog	Tue Dec 18 04:59:22 2007 -0500
+++ b/ChangeLog	Tue Dec 18 05:12:22 2007 -0500
@@ -1,3 +1,16 @@ 2007-12-18  Gary Benson  <gbenson at redhat
+2007-12-18  Gary Benson  <gbenson at redhat.com>
+
+	* contrib/templater/*: Wrap all PPC-specifics with conditionals.
+
+	* ports/hotspot/src/cpu/ppc/vm/assembler_ppc.hpp:
+	Regenerated from templater (whitespace changes only).
+	* ports/hotspot/src/cpu/ppc/vm/assembler_ppc.cpp: Likewise.
+	* ports/hotspot/src/cpu/ppc/vm/frame_ppc.hpp: Likewise.
+	* ports/hotspot/src/cpu/ppc/vm/registerMap_ppc.hpp: Likewise.
+	* ports/hotspot/src/cpu/ppc/vm/stubGenerator_ppc.cpp: Likewise.
+	* ports/hotspot/src/cpu/ppc/vm/stubRoutines_ppc.hpp: Likewise.
+	* ports/hotspot/src/os_cpu/linux_ppc/vm/os_linux_ppc.cpp: Likewise.
+
 2007-12-18  Gary Benson  <gbenson at redhat.com>
 
 	* ports/hotspot/src/os_cpu/linux_ppc/vm/os_linux_ppc.cpp
diff -r 2109ddb8dc92 -r 52e05f49560a contrib/templater/generate.py
--- a/contrib/templater/generate.py	Tue Dec 18 04:59:22 2007 -0500
+++ b/contrib/templater/generate.py	Tue Dec 18 05:12:22 2007 -0500
@@ -40,12 +40,12 @@ def preprocess(src, cpu):
     while src:
         thing = things.match(src)
         if not thing:
-            if mode[-1] != COND_FALSE:
+            if COND_FALSE not in mode:
                 dst += src
             break
         before, thing, src = thing.groups()
         src = thing + src
-        if mode[-1] != COND_FALSE:
+        if COND_FALSE not in mode:
             dst += before
         end = ends.get(thing, "\n")
         index = src.find(end)
@@ -54,7 +54,7 @@ def preprocess(src, cpu):
         thing = src[:index]
         src = src[index:]
         if not thing.startswith("#"):
-            if mode[-1] != COND_FALSE:
+            if COND_FALSE not in mode:
                 dst += thing
             continue
         args = thing.strip().split()
@@ -63,7 +63,7 @@ def preprocess(src, cpu):
             cmd += args.pop(0)
 
         if cmd in ("#include", "#define", "#undef"):
-            if mode[-1] != COND_FALSE:
+            if COND_FALSE not in mode:
                 dst += thing
         elif cmd in ("#ifdef", "#ifndef"):
             us, them = {
@@ -76,7 +76,8 @@ def preprocess(src, cpu):
                 mode.append(them)
             else:
                 mode.append(COPY)
-                dst += thing
+                if COND_FALSE not in mode:
+                    dst += thing
         elif cmd == "#if":
             for check in [cpu] + other_cpus:
                 assert "defined(%s)" % check not in args
@@ -88,9 +89,10 @@ def preprocess(src, cpu):
             elif mode[-1] == COND_FALSE:
                 mode[-1] = COND_TRUE
             else:
-                dst += thing
+                if COND_FALSE not in mode:
+                    dst += thing
         elif cmd == "#endif":
-            if mode[-1] == COPY:
+            if mode[-1] == COPY and COND_FALSE not in mode:
                 dst += thing
             mode.pop()
         else:
diff -r 2109ddb8dc92 -r 52e05f49560a contrib/templater/hotspot/src/cpu/CPU/vm/assembler_CPU.cpp
--- a/contrib/templater/hotspot/src/cpu/CPU/vm/assembler_CPU.cpp	Tue Dec 18 04:59:22 2007 -0500
+++ b/contrib/templater/hotspot/src/cpu/CPU/vm/assembler_CPU.cpp	Tue Dec 18 05:12:22 2007 -0500
@@ -648,16 +648,16 @@ void Assembler::pd_patch_instruction(add
     Unimplemented();
   }
 }
-
 #endif // PPC
+
 #ifndef PRODUCT
 void Assembler::pd_print_patched_instruction(address branch)
 {
   Unimplemented();
 }
 #endif // PRODUCT
+
 #ifdef PPC
-
 // 32-bit ABI:
 //
 //     | ...                  |
@@ -1406,8 +1406,6 @@ void MacroAssembler::untested(const char
     CAST_FROM_FN_PTR(address, report_untested), file, line, message);
 }
 
-#endif // PPC
-
 address MacroAssembler::generate_unimplemented_stub(const char* file, int line)
 {
   address start = enter();
@@ -1470,3 +1468,9 @@ void MacroAssembler::dump_int(const char
   epilog(frame);
 }
 #endif // PRODUCT
+
+#endif // PPC
+void MacroAssembler::bang_stack_with_offset(int offset)
+{
+  Unimplemented();
+}
diff -r 2109ddb8dc92 -r 52e05f49560a contrib/templater/hotspot/src/cpu/CPU/vm/assembler_CPU.hpp
--- a/contrib/templater/hotspot/src/cpu/CPU/vm/assembler_CPU.hpp	Tue Dec 18 04:59:22 2007 -0500
+++ b/contrib/templater/hotspot/src/cpu/CPU/vm/assembler_CPU.hpp	Tue Dec 18 05:12:22 2007 -0500
@@ -25,13 +25,12 @@
 
 // The definitions needed for @@cpu@@ assembly code generation.
 
+#ifdef PPC
 // Non-volatile registers used by the interpreter
 
-#ifdef PPC
 REGISTER_DECLARATION(Register, Rthread, r31);
 REGISTER_DECLARATION(Register, Rmethod, r30);
 REGISTER_DECLARATION(Register, Rlocals, r29);
-#endif // PPC
 
 
 // Address is an abstraction used to represent a memory location
@@ -62,6 +61,7 @@ class Address {
 };
 
 
+#endif // PPC
 // The @@cpu@@ Assembler: Pure assembler doing NO optimizations on
 // the instruction level; i.e., what you write is what you get.
 // The Assembler is generating code into a CodeBuffer.
@@ -69,6 +69,7 @@ class Assembler : public AbstractAssembl
 class Assembler : public AbstractAssembler {
  public:
   Assembler(CodeBuffer* code) : AbstractAssembler(code) {}
+#ifdef PPC
 
  private:
   static bool is_simm(int x, int nbits)
@@ -82,7 +83,6 @@ class Assembler : public AbstractAssembl
     return is_simm(x, 16);
   }
 
-#ifdef PPC
  private:
   // Instruction emitters for the various forms.
   // Every instruction should ultimately come through one of these.
@@ -230,19 +230,19 @@ class Assembler : public AbstractAssembl
   void b(Label& l);
   void bc(int bo, int bi, Label& l);
   void bl(Label& l);
+#endif // PPC
 
   // Function to fix up forward branches
   void pd_patch_instruction(address branch, address target);
 #ifndef PRODUCT  
   static void pd_print_patched_instruction(address branch);
 #endif // PRODUCT
-#endif // PPC
-};
-
+};
+
+#ifdef PPC
 
 // StackFrame is used to generate prologs and epilogs
 
-#ifdef PPC
 class StackFrame {
  private:
   int _params;
@@ -325,7 +325,6 @@ class StackFrame {
   int unaligned_size();
   int start_of_locals();
 };
-#endif // PPC
 
 
 // Flags for MacroAssembler::call_VM
@@ -337,12 +336,14 @@ enum CallVMFlags {
 };
 
 
+#endif // PPC
 // MacroAssembler extends Assembler by frequently used macros.
 //
 // Instructions for which a 'better' code sequence exists depending
 // on arguments should also go in here.
 
 class MacroAssembler : public Assembler {
+#ifdef PPC
  protected:
   // Support for VM calls
   //
@@ -365,15 +366,16 @@ class MacroAssembler : public Assembler 
                          Register arg_2 = noreg,
                          Register arg_3 = noreg);
   
+#endif // PPC
  public:
   MacroAssembler(CodeBuffer* code) : Assembler(code) {}
 
   void align(int modulus);
+#ifdef PPC
 
   void prolog(StackFrame& frame) { frame.generate_prolog(this); }
   void epilog(StackFrame& frame) { frame.generate_epilog(this); }
 
-#ifdef PPC
   // Non-standard mnemonics
   void lbax(Register dst, Register a, Register b);
   void lhax(Register dst, Register a, Register b);
@@ -400,7 +402,6 @@ class MacroAssembler : public Assembler 
   void store_indexed(Register src, Register a, Register b);
   void store_update(Register src, const Address& dst);
   void store_update_indexed(Register src, Register a, Register b);
-#endif // PPC
 
   void cmpxchg_(Register exchange, Register dst, Register compare);
 
@@ -461,17 +462,20 @@ class MacroAssembler : public Assembler 
   void dump_int(const char* prefix, Register src);
 #endif // PRODUCT
 
-  void bang_stack_with_offset(int offset)
-  {
-    Unimplemented();
-  }
+#endif // PPC
+  void bang_stack_with_offset(int offset);
 };
 
 #ifdef ASSERT
-inline bool AbstractAssembler::pd_check_instruction_mark() { Unimplemented(); }
+inline bool AbstractAssembler::pd_check_instruction_mark()
+{
+  Unimplemented();
+}
 #endif
 
+#ifdef PPC
 #define UnimplementedStub() \
   (__ generate_unimplemented_stub(__FILE__, __LINE__))
 #define UnimplementedEntry() \
   (__ generate_unimplemented_entry(__FILE__, __LINE__))
+#endif // PPC
diff -r 2109ddb8dc92 -r 52e05f49560a contrib/templater/hotspot/src/cpu/CPU/vm/bytecodeInterpreter_CPU.inline.hpp
--- a/contrib/templater/hotspot/src/cpu/CPU/vm/bytecodeInterpreter_CPU.inline.hpp	Tue Dec 18 04:59:22 2007 -0500
+++ b/contrib/templater/hotspot/src/cpu/CPU/vm/bytecodeInterpreter_CPU.inline.hpp	Tue Dec 18 05:12:22 2007 -0500
@@ -42,11 +42,8 @@ inline int32_t BytecodeInterpreter::VMfl
 }
 
 inline void BytecodeInterpreter::VMmemCopy64(uint32_t to[2], const uint32_t from[2]) {
-  // x86 can do unaligned copies but not 64bits at a time
-  to[0] = from[0]; to[1] = from[1];
-}
-
-// The long operations depend on compiler support for "long long" on x86
+  *(uint64_t *) to = *(uint64_t *) from;
+}
 
 inline jlong BytecodeInterpreter::VMlongAdd(jlong op1, jlong op2) {
   return op1 + op2;
diff -r 2109ddb8dc92 -r 52e05f49560a contrib/templater/hotspot/src/cpu/CPU/vm/bytes_CPU.hpp
--- a/contrib/templater/hotspot/src/cpu/CPU/vm/bytes_CPU.hpp	Tue Dec 18 04:59:22 2007 -0500
+++ b/contrib/templater/hotspot/src/cpu/CPU/vm/bytes_CPU.hpp	Tue Dec 18 05:12:22 2007 -0500
@@ -25,12 +25,15 @@
 
 class Bytes: AllStatic {
  public:
-  // Returns true if the byte ordering used by Java is different from
-  // the native byte ordering of the underlying machine. For example,
-  // this is true for Intel x86, but false for Solaris on Sparc.
+  // Returns true if the byte ordering used by Java is different
+  // from the native byte ordering of the underlying machine.
   static inline bool is_Java_byte_ordering_different()
   {
-    return @@isLittleEndian(cpu) and "true" or "false"@@;
+#ifdef VM_LITTLE_ENDIAN
+    return true;
+#else
+    return false;
+#endif
   }
 
   // Efficient reading and writing of unaligned unsigned data in
@@ -132,9 +135,9 @@ class Bytes: AllStatic {
 
 
   // Efficient reading and writing of unaligned unsigned data in Java
-  // byte ordering (i.e. big-endian ordering). @@
-(isLittleEndian(cpu) and """Byte-order reversal is
-  // needed since %s CPUs use little-endian format.
+  // byte ordering (i.e. big-endian ordering).
+#ifdef VM_LITTLE_ENDIAN
+  // Byte-order reversal is needed
   static inline u2 get_Java_u2(address p)
   {
     return swap_u2(get_native_u2(p)); 
@@ -164,8 +167,9 @@ class Bytes: AllStatic {
   // Efficient swapping of byte ordering
   static inline u2 swap_u2(u2 x);
   static inline u4 swap_u4(u4 x);
-  static inline u8 swap_u8(u8 x);""" or """No byte-order reversal
-  // is needed since %s CPUs use big-endian format.
+  static inline u8 swap_u8(u8 x);
+#else
+  // No byte-order reversal is needed
   static inline u2 get_Java_u2(address p)
   {
     return get_native_u2(p);
@@ -195,10 +199,12 @@ class Bytes: AllStatic {
   // No byte-order reversal is needed
   static inline u2 swap_u2(u2 x) { return x; }
   static inline u4 swap_u4(u4 x) { return x; }
-  static inline u8 swap_u8(u8 x) { return x; }""") % cpu@@
+  static inline u8 swap_u8(u8 x) { return x; }
+#endif // VM_LITTLE_ENDIAN
 };
-@@isLittleEndian(cpu) and """\
-
+
+#ifdef VM_LITTLE_ENDIAN
 // The following header contains the implementations of swap_u2,
 // swap_u4, and swap_u8
-#include "incls/_bytes_pd.inline.hpp.incl"""@@
+#include "incls/_bytes_pd.inline.hpp.incl"
+#endif // VM_LITTLE_ENDIAN
diff -r 2109ddb8dc92 -r 52e05f49560a contrib/templater/hotspot/src/cpu/CPU/vm/cppInterpreterGenerator_CPU.hpp
--- a/contrib/templater/hotspot/src/cpu/CPU/vm/cppInterpreterGenerator_CPU.hpp	Tue Dec 18 04:59:22 2007 -0500
+++ b/contrib/templater/hotspot/src/cpu/CPU/vm/cppInterpreterGenerator_CPU.hpp	Tue Dec 18 05:12:22 2007 -0500
@@ -23,8 +23,10 @@
  *  
  */
 
+#ifdef PPC
   void generate_adjust_callers_stack();
   void generate_compute_interpreter_state(bool native); 
   void generate_more_monitors();
   void generate_convert_result(address* converter_array);
   void generate_unwind_interpreter_state();
+#endif // PPC
diff -r 2109ddb8dc92 -r 52e05f49560a contrib/templater/hotspot/src/cpu/CPU/vm/cppInterpreter_CPU.cpp
--- a/contrib/templater/hotspot/src/cpu/CPU/vm/cppInterpreter_CPU.cpp	Tue Dec 18 04:59:22 2007 -0500
+++ b/contrib/templater/hotspot/src/cpu/CPU/vm/cppInterpreter_CPU.cpp	Tue Dec 18 05:12:22 2007 -0500
@@ -27,6 +27,7 @@
 #include "incls/_cppInterpreter_@@cpu@@.cpp.incl"
 
 #ifdef CC_INTERP
+#ifdef PPC
 
 // The address of this function is stored in the LR save area
 // while we are recursed in the frame manager/C++ interpreter.
@@ -61,6 +62,7 @@ static Label fast_accessor_slow_entry_pa
 // Stuff for caching identical entries
 static address normal_entry = NULL;
 static address native_entry = NULL;
+#endif // PPC
 
 int AbstractInterpreter::BasicType_as_index(BasicType type)
 {
@@ -90,10 +92,15 @@ int AbstractInterpreter::BasicType_as_in
 
 bool CppInterpreter::contains(address pc)
 {
+#ifdef PPC
   return pc == CAST_FROM_FN_PTR(address, RecursiveInterpreterActivation)
     || _code->contains(pc);
-}
-
+#else
+  Unimplemented();
+#endif // PPC
+}
+
+#ifdef PPC
 // A result is the register or registers defined in the native ABI
 // for that type, unless it is an OOP in which case it will have
 // been unboxed and saved in the frame.  Preprocess it.
@@ -1288,6 +1295,7 @@ void CppInterpreterGenerator::generate_u
   __ load (r0, Address(r1, StackFrame::lr_save_offset * wordSize));
   __ mtlr (r0);  
 }
+#endif // PPC
 
 address AbstractInterpreterGenerator::generate_method_entry(
     AbstractInterpreter::MethodKind kind) {
@@ -1350,6 +1358,7 @@ InterpreterGenerator::InterpreterGenerat
 
 int AbstractInterpreter::size_top_interpreter_activation(methodOop method)
 {
+#ifdef PPC
   StackFrame frame;
 
   int call_stub_frame = round_to(
@@ -1365,6 +1374,9 @@ int AbstractInterpreter::size_top_interp
     sizeof(BytecodeInterpreter), StackAlignmentInBytes);
 
   return (call_stub_frame + interpreter_frame) / wordSize;
+#else
+  Unimplemented();
+#endif // PPC
 }
 
 // Deoptimization helpers for C++ interpreter
diff -r 2109ddb8dc92 -r 52e05f49560a contrib/templater/hotspot/src/cpu/CPU/vm/disassembler_CPU.cpp
--- a/contrib/templater/hotspot/src/cpu/CPU/vm/disassembler_CPU.cpp	Tue Dec 18 04:59:22 2007 -0500
+++ b/contrib/templater/hotspot/src/cpu/CPU/vm/disassembler_CPU.cpp	Tue Dec 18 05:12:22 2007 -0500
@@ -27,6 +27,7 @@
 #include "incls/_disassembler_@@cpu@@.cpp.incl"
 
 #ifndef PRODUCT
+#ifdef PPC
 class InstructionParser {
  private:
   intptr_t _addr;
@@ -652,11 +653,16 @@ static void print_instruction_at(address
 
 // External interface
 
+#endif // PPC
 void Disassembler::decode(CodeBlob *cb, outputStream *st)
 {
+#ifdef PPC
   st = st ? st : tty;
   st->print_cr("Decoding CodeBlob " INTPTR_FORMAT, cb);
   decode(cb->instructions_begin(), cb->instructions_end(), st);
+#else
+  Unimplemented();
+#endif // PPC
 }
 
 void Disassembler::decode(nmethod *nm, outputStream *st)
@@ -666,6 +672,7 @@ void Disassembler::decode(nmethod *nm, o
 
 void Disassembler::decode(u_char *begin, u_char *end, outputStream *st)
 {
+#ifdef PPC
   st = st ? st : tty;
   CodeBlob *cb = CodeCache::find_blob_unsafe(begin);
   for (u_char *addr = begin; addr < end; addr += 4) {
@@ -682,5 +689,8 @@ void Disassembler::decode(u_char *begin,
 
     st->cr();
   }
+#else
+  Unimplemented();
+#endif // PPC
 }
 #endif // PRODUCT
diff -r 2109ddb8dc92 -r 52e05f49560a contrib/templater/hotspot/src/cpu/CPU/vm/frame_CPU.cpp
--- a/contrib/templater/hotspot/src/cpu/CPU/vm/frame_CPU.cpp	Tue Dec 18 04:59:22 2007 -0500
+++ b/contrib/templater/hotspot/src/cpu/CPU/vm/frame_CPU.cpp	Tue Dec 18 05:12:22 2007 -0500
@@ -39,11 +39,16 @@ void RegisterMap::check_location_valid()
 
 bool frame::is_interpreted_frame() const
 {
+#ifdef PPC
   return Interpreter::contains(pc());
+#else
+  Unimplemented();
+#endif // PPC
 }
 
 frame frame::sender_for_entry_frame(RegisterMap *map) const
 {
+#ifdef PPC
   assert(map != NULL, "map must be set");
   // Java frame called from C; skip all C frames and return top C
   // frame of that chunk as the sender
@@ -53,6 +58,9 @@ frame frame::sender_for_entry_frame(Regi
   map->clear(); 
   assert(map->include_argument_oops(), "should be set by clear");
   return frame(jfa->last_Java_sp(), jfa->last_Java_pc());
+#else
+  Unimplemented();
+#endif // PPC
 }
 
 frame frame::sender_for_interpreter_frame(RegisterMap *map) const
diff -r 2109ddb8dc92 -r 52e05f49560a contrib/templater/hotspot/src/cpu/CPU/vm/frame_CPU.hpp
--- a/contrib/templater/hotspot/src/cpu/CPU/vm/frame_CPU.hpp	Tue Dec 18 04:59:22 2007 -0500
+++ b/contrib/templater/hotspot/src/cpu/CPU/vm/frame_CPU.hpp	Tue Dec 18 05:12:22 2007 -0500
@@ -23,19 +23,19 @@
  *  



More information about the distro-pkg-dev mailing list