Re: JDK7u, hotspot, CC_INTERP, and COBOL

2013-10-08 Thread Volker Simonis
- reposted without picture -

Hi Francis,

I think the test you used is good (it generates invokedynamic bytecodes
with the ASM library. If you want a better test coverage you could use the
regression tests under jdk/test/java/lang/invoke/.

Regards,
Volker

On Tue, Oct 8, 2013 at 7:17 PM, Francis ANDRE 
francis.andre.kampb...@orange.fr wrote:

  Hi Volker

 I wanted to test my changes on a simple test that involves InvokeDynamic
 using JDK7. I joined the test I found on the internet and also the output
 of running this test. I run the same way as before where the assert was
 failing before I made the changes.

 Can you have a look to this test and tell me if you consider it as a real
 test for the invokedynamic opcode and environment EnableInvokeDynamic as
 true which is the default?

 If this ReflectTest.java is not a proper test for testing the
 invokedynamic, could you provide me a test you are considering as a test
 that the interpreter is running fine?


 Francis


 Francis
 Le 07/10/2013 10:59, Volker Simonis a écrit :

 What are your settings for 'EnableInvokeDynamic'? If you use the
 default which is EnableInvokeDynamic=true then verifier_max_stack()
 doesn't account for extra_stack_entries() and this is wrong because
 'istate-_stack_limit' does (see the comment in our code).

 Your solution probably only seems to work because
 'istate-_stack_limit' on x86 currently does not account for
 extra_stack_entries() which is wrong (you probalby won't be able to
 run any JSR292 code). I think you'll have to add something similar
 like

   // max_stack = method-max_stack();
   // TODO: PPC port: assert(2 == methodOopDesc::sz_max_stack(),
 unexpected field size);
   __ ppc_lhz(max_stack, method_(max_stack));

   if (EnableInvokeDynamic) {
 // Take into account 'extra_stack_entries' needed by method
 handles (see method.hpp)
 __ ppc_addi(max_stack, max_stack, methodOopDesc::extra_stack_entries());
   }

 to CppInterpreterGenerator::generate_compute_interpreter_state() on
 x86 to make JSR292 work with the CPP interpreter on that platform.
 After you did that, you will probably see that the assertion will not
 work anymore with verifier_max_stack() and you'll have to use
 max_stack() as we did.

 The two different versions of the assertion in our code are only
 necessary, if you use a HotSpot 24 with a pre HS24 class library, in
 which case EnableInvokeDynamic will be switched off after
 CppInterpreterGenerator::generate_compute_interpreter_state was
 called.

 Regards,
 Volker


 On Fri, Oct 4, 2013 at 8:37 PM, Francis 
 ANDREfrancis.andre.kampb...@orange.fr francis.andre.kampb...@orange.fr 
 wrote:

  Hi Volker

 I had a look to the CPP-Interpreter you mention in your answer and found out
 a somewhat different implementation for verifying the stack size.

 here the snippet from the ppc-aix-potr/jdk7u
 #ifdef ASSERT
   if (istate-_msg != initialize) {
 // We have a problem here if we are running with a pre-hsx24 JDK (for
 example during bootstrap)
 // because in that case, EnableInvokeDynamic is true by default but will
 be later switched off
 // if java_lang_invoke_MethodHandle::compute_offsets() detects that the
 JDK only has the classes
 // for the old JSR292 implementation.
 // This leads to a situation where 'istate-_stack_limit' always
 accounts for
 // methodOopDesc::extra_stack_entries() because it is computed in
 // CppInterpreterGenerator::generate_compute_interpreter_state() which
 was generated while
 // EnableInvokeDynamic was still true. On the other hand,
 istate-_method-max_stack() doesn't
 // account for extra_stack_entries() anymore because at the time when it
 is called
 // EnableInvokeDynamic was already set to false.
 // So we have a second version of the assertion which handles the case
 where EnableInvokeDynamic was
 // switched off because of the wrong classes.
 if (EnableInvokeDynamic || FLAG_IS_CMDLINE(EnableInvokeDynamic)) {
   assert(labs(istate-_stack_base - istate-_stack_limit) ==
 (istate-_method-max_stack() + 1), bad stack limit);
 }
 else {
   const int extra_stack_entries = 2; // MUST match the value in
 methodOopDesc::extra_stack_entries()
   assert(labs(istate-_stack_base - istate-_stack_limit) ==
 (istate-_method-max_stack() + extra_stack_entries
 + 1), bad stack limit);
 }


 On my x86 build, I used this and it seems to work fine also
 #ifdef ASSERT
   if (istate-_msg != initialize) {
 assert(abs(istate-_stack_base - istate-_stack_limit) ==
 (istate-_method-verifier_max_stack() + 1), bad stack limit);
 #ifndef SHARK
 IA32_ONLY(assert(istate-_stack_limit == istate-_thread-last_Java_sp()
 + 1, wrong));
 #endif // !SHARK
   }

 so I am wondering if it is ok to use the verifier_max_stack() function which
 seems lighter from the lisibility perspective?



 Francis

 Le 30/09/2013 17:37, Volker Simonis a écrit :

  Just for reference: we have a running CPP-Interpreter on Linux/PPC64

 

Re: JDK7u, hotspot, CC_INTERP, and COBOL

2013-10-07 Thread Volker Simonis
What are your settings for 'EnableInvokeDynamic'? If you use the
default which is EnableInvokeDynamic=true then verifier_max_stack()
doesn't account for extra_stack_entries() and this is wrong because
'istate-_stack_limit' does (see the comment in our code).

Your solution probably only seems to work because
'istate-_stack_limit' on x86 currently does not account for
extra_stack_entries() which is wrong (you probalby won't be able to
run any JSR292 code). I think you'll have to add something similar
like

  // max_stack = method-max_stack();
  // TODO: PPC port: assert(2 == methodOopDesc::sz_max_stack(),
unexpected field size);
  __ ppc_lhz(max_stack, method_(max_stack));

  if (EnableInvokeDynamic) {
// Take into account 'extra_stack_entries' needed by method
handles (see method.hpp)
__ ppc_addi(max_stack, max_stack, methodOopDesc::extra_stack_entries());
  }

to CppInterpreterGenerator::generate_compute_interpreter_state() on
x86 to make JSR292 work with the CPP interpreter on that platform.
After you did that, you will probably see that the assertion will not
work anymore with verifier_max_stack() and you'll have to use
max_stack() as we did.

The two different versions of the assertion in our code are only
necessary, if you use a HotSpot 24 with a pre HS24 class library, in
which case EnableInvokeDynamic will be switched off after
CppInterpreterGenerator::generate_compute_interpreter_state was
called.

Regards,
Volker


On Fri, Oct 4, 2013 at 8:37 PM, Francis ANDRE
francis.andre.kampb...@orange.fr wrote:
 Hi Volker

 I had a look to the CPP-Interpreter you mention in your answer and found out
 a somewhat different implementation for verifying the stack size.

 here the snippet from the ppc-aix-potr/jdk7u
 #ifdef ASSERT
   if (istate-_msg != initialize) {
 // We have a problem here if we are running with a pre-hsx24 JDK (for
 example during bootstrap)
 // because in that case, EnableInvokeDynamic is true by default but will
 be later switched off
 // if java_lang_invoke_MethodHandle::compute_offsets() detects that the
 JDK only has the classes
 // for the old JSR292 implementation.
 // This leads to a situation where 'istate-_stack_limit' always
 accounts for
 // methodOopDesc::extra_stack_entries() because it is computed in
 // CppInterpreterGenerator::generate_compute_interpreter_state() which
 was generated while
 // EnableInvokeDynamic was still true. On the other hand,
 istate-_method-max_stack() doesn't
 // account for extra_stack_entries() anymore because at the time when it
 is called
 // EnableInvokeDynamic was already set to false.
 // So we have a second version of the assertion which handles the case
 where EnableInvokeDynamic was
 // switched off because of the wrong classes.
 if (EnableInvokeDynamic || FLAG_IS_CMDLINE(EnableInvokeDynamic)) {
   assert(labs(istate-_stack_base - istate-_stack_limit) ==
 (istate-_method-max_stack() + 1), bad stack limit);
 }
 else {
   const int extra_stack_entries = 2; // MUST match the value in
 methodOopDesc::extra_stack_entries()
   assert(labs(istate-_stack_base - istate-_stack_limit) ==
 (istate-_method-max_stack() + extra_stack_entries
 + 1), bad stack limit);
 }


 On my x86 build, I used this and it seems to work fine also
 #ifdef ASSERT
   if (istate-_msg != initialize) {
 assert(abs(istate-_stack_base - istate-_stack_limit) ==
 (istate-_method-verifier_max_stack() + 1), bad stack limit);
 #ifndef SHARK
 IA32_ONLY(assert(istate-_stack_limit == istate-_thread-last_Java_sp()
 + 1, wrong));
 #endif // !SHARK
   }

 so I am wondering if it is ok to use the verifier_max_stack() function which
 seems lighter from the lisibility perspective?



 Francis

 Le 30/09/2013 17:37, Volker Simonis a écrit :

 Just for reference: we have a running CPP-Interpreter on Linux/PPC64

 with some enhancements like profiling, compressed oops, OSR, JSR292
 and Biased Locking. So in the case you want to fix it on x86, you may
 take the PPC64 implementation as a boiler plate:

 http://hg.openjdk.java.net/ppc-aix-port/jdk7u
 http://hg.openjdk.java.net/ppc-aix-port/jdk8

 Regards,
 Volker



 On Wed, Sep 25, 2013 at 7:52 PM, Francis ANDRE
 francis.andre.kampb...@orange.fr wrote:

 Hi

 On WXP with VS2010 and the
 http://hg.openjdk.java.net/jdk7u/jdk7u/hotspot/
 repository, I successfully build and ran the debug version of hotspot in
 compiler1 directory. fine

 Next, I tried  to get working the bytecode cppInterpreter instead of the
 template based interpreter adding the CC_INTERP=true preprocessor define,
 but I got several compile errors -- see below --

 By looking at the Wiki and the OpenJDK website, I discovered that the
 cppInterpreter was no more maintained.

 So I am wondering why the cppInterpreter is not anymore maintained and
 would
 like to understand if this decision is definitive or not, because it
 seems
 to me that there are very few errors. (see above) and that, IMHO, 

Re: JDK7u, hotspot, CC_INTERP, and COBOL

2013-09-30 Thread Volker Simonis
Just for reference: we have a running CPP-Interpreter on Linux/PPC64
with some enhancements like profiling, compressed oops, OSR, JSR292
and Biased Locking. So in the case you want to fix it on x86, you may
take the PPC64 implementation as a boiler plate:

http://hg.openjdk.java.net/ppc-aix-port/jdk7u
http://hg.openjdk.java.net/ppc-aix-port/jdk8

Regards,
Volker



On Wed, Sep 25, 2013 at 7:52 PM, Francis ANDRE
francis.andre.kampb...@orange.fr wrote:
 Hi

 On WXP with VS2010 and the http://hg.openjdk.java.net/jdk7u/jdk7u/hotspot/
 repository, I successfully build and ran the debug version of hotspot in
 compiler1 directory. fine

 Next, I tried  to get working the bytecode cppInterpreter instead of the
 template based interpreter adding the CC_INTERP=true preprocessor define,
 but I got several compile errors -- see below --

 By looking at the Wiki and the OpenJDK website, I discovered that the
 cppInterpreter was no more maintained.

 So I am wondering why the cppInterpreter is not anymore maintained and would
 like to understand if this decision is definitive or not, because it seems
 to me that there are very few errors. (see above) and that, IMHO, a somewhat
 small effort should be made to fix the cppInterpreter (but it could be
 totally wrong).

 I need the cppInterpreter to make a proposal to the MLVM project to slightly
 change the JVM spec for all xALOAD  and xASTORE bytecodes for a specific
 class version number for an efficient support of a _COBOL __runtime_.

 Regards

 Francis


  cppInterpreter_x86.cpp
 1  frame_x86.cpp
 1  interpreter_x86_32.cpp
 1  interp_masm_x86_32.cpp
 1..\..\src\cpu\x86\vm\frame_x86.cpp(691): error C2039:
 'interpreter_frame_sender_sp_offset' : n'est pas membre de 'frame'
 1 Z:\DEV\OpenJDK7u\hotspot\src\share\vm\runtime/frame.hpp(73) : voir la
 déclaration de 'frame'
 1..\..\src\cpu\x86\vm\frame_x86.cpp(691): error C2065:
 'interpreter_frame_sender_sp_offset' : identificateur non déclaré
 1..\..\src\cpu\x86\vm\frame_x86.cpp(692): error C2039:
 'interpreter_frame_last_sp_offset' : n'est pas membre de 'frame'
 1 Z:\DEV\OpenJDK7u\hotspot\src\share\vm\runtime/frame.hpp(73) : voir la
 déclaration de 'frame'
 1..\..\src\cpu\x86\vm\frame_x86.cpp(692): error C2065:
 'interpreter_frame_last_sp_offset' : identificateur non déclaré
 1..\..\src\cpu\x86\vm\frame_x86.cpp(693): error C2039:
 'interpreter_frame_method_offset' : n'est pas membre de 'frame'
 1 Z:\DEV\OpenJDK7u\hotspot\src\share\vm\runtime/frame.hpp(73) : voir la
 déclaration de 'frame'
 1..\..\src\cpu\x86\vm\frame_x86.cpp(693): error C2065:
 'interpreter_frame_method_offset' : identificateur non déclaré
 1..\..\src\cpu\x86\vm\frame_x86.cpp(694): error C2039:
 'interpreter_frame_mdx_offset' : n'est pas membre de 'frame'
 1 Z:\DEV\OpenJDK7u\hotspot\src\share\vm\runtime/frame.hpp(73) : voir la
 déclaration de 'frame'
 1..\..\src\cpu\x86\vm\frame_x86.cpp(694): error C2065:
 'interpreter_frame_mdx_offset' : identificateur non déclaré
 1..\..\src\cpu\x86\vm\frame_x86.cpp(695): error C2039:
 'interpreter_frame_cache_offset' : n'est pas membre de 'frame'
 1 Z:\DEV\OpenJDK7u\hotspot\src\share\vm\runtime/frame.hpp(73) : voir la
 déclaration de 'frame'
 1..\..\src\cpu\x86\vm\frame_x86.cpp(695): error C2065:
 'interpreter_frame_cache_offset' : identificateur non déclaré
 1..\..\src\cpu\x86\vm\frame_x86.cpp(696): error C2039:
 'interpreter_frame_locals_offset' : n'est pas membre de 'frame'
 1 Z:\DEV\OpenJDK7u\hotspot\src\share\vm\runtime/frame.hpp(73) : voir la
 déclaration de 'frame'
 1..\..\src\cpu\x86\vm\frame_x86.cpp(696): error C2065:
 'interpreter_frame_locals_offset' : identificateur non déclaré
 1..\..\src\cpu\x86\vm\frame_x86.cpp(697): error C2039:
 'interpreter_frame_bcx_offset' : n'est pas membre de 'frame'
 1 Z:\DEV\OpenJDK7u\hotspot\src\share\vm\runtime/frame.hpp(73) : voir la
 déclaration de 'frame'
 1..\..\src\cpu\x86\vm\frame_x86.cpp(697): error C2065:
 'interpreter_frame_bcx_offset' : identificateur non déclaré
 1..\..\src\cpu\x86\vm\frame_x86.cpp(698): error C2039:
 'interpreter_frame_initial_sp_offset' : n'est pas membre de 'frame'
 1 Z:\DEV\OpenJDK7u\hotspot\src\share\vm\runtime/frame.hpp(73) : voir la
 déclaration de 'frame'
 1..\..\src\cpu\x86\vm\frame_x86.cpp(698): error C2065:
 'interpreter_frame_initial_sp_offset' : identificateur non déclaré
 1  sharedRuntime_x86_32.cpp
 1..\..\src\cpu\x86\vm\interp_masm_x86_32.cpp(56): error C2220:
 avertissement considéré comme une erreur - aucun fichier 'object' généré
 1..\..\src\cpu\x86\vm\interp_masm_x86_32.cpp(56): warning C4146: opérateur
 moins unaire appliqué à un type non signé, le résultat sera non signé
 1..\..\src\cpu\x86\vm\interp_masm_x86_32.cpp(1414): error C2039:
 'increment_mask_and_jump' : n'est pas membre de 'InterpreterMacroAssembler'
 1 z:\dev\openjdk7u\hotspot\src\cpu\x86\vm\interp_masm_x86_32.hpp(34) : voir
 la déclaration de 'InterpreterMacroAssembler'
 1..\..\src\cpu\x86\vm\interp_masm_x86_32.cpp(1417): error C2061: erreur de
 syntaxe : 

Re: JDK7u, hotspot, CC_INTERP, and COBOL

2013-09-26 Thread Christian Thalinger

On Sep 25, 2013, at 10:52 AM, Francis ANDRE francis.andre.kampb...@orange.fr 
wrote:

 Hi
 
 On WXP with VS2010 and the http://hg.openjdk.java.net/jdk7u/jdk7u/hotspot/ 
 repository, I successfully build and ran the debug version of hotspot in 
 compiler1 directory. fine
 
 Next, I tried  to get working the bytecode cppInterpreter instead of the 
 template based interpreter adding the CC_INTERP=true preprocessor define, but 
 I got several compile errors -- see below --
 
 By looking at the Wiki and the OpenJDK website, I discovered that the 
 cppInterpreter was no more maintained.

I have no idea if it works on Windows but on Linux you can build Zero:

http://openjdk.java.net/projects/zero/

Zero uses the C++ interpreter.

 
 So I am wondering why the cppInterpreter is not anymore maintained and would 
 like to understand if this decision is definitive or not, because it seems to 
 me that there are very few errors. (see above) and that, IMHO, a somewhat 
 small effort should be made to fix the cppInterpreter (but it could be 
 totally wrong).
 
 I need the cppInterpreter to make a proposal to the MLVM project to slightly 
 change the JVM spec for all xALOAD  and xASTORE bytecodes for a specific 
 class version number for an efficient support of a _COBOL __runtime_.
 
 Regards
 
 Francis
 
 
 cppInterpreter_x86.cpp
 1  frame_x86.cpp
 1  interpreter_x86_32.cpp
 1  interp_masm_x86_32.cpp
 1..\..\src\cpu\x86\vm\frame_x86.cpp(691): error C2039: 
 'interpreter_frame_sender_sp_offset' : n'est pas membre de 'frame'
 1 Z:\DEV\OpenJDK7u\hotspot\src\share\vm\runtime/frame.hpp(73) : voir la 
 déclaration de 'frame'
 1..\..\src\cpu\x86\vm\frame_x86.cpp(691): error C2065: 
 'interpreter_frame_sender_sp_offset' : identificateur non déclaré
 1..\..\src\cpu\x86\vm\frame_x86.cpp(692): error C2039: 
 'interpreter_frame_last_sp_offset' : n'est pas membre de 'frame'
 1 Z:\DEV\OpenJDK7u\hotspot\src\share\vm\runtime/frame.hpp(73) : voir la 
 déclaration de 'frame'
 1..\..\src\cpu\x86\vm\frame_x86.cpp(692): error C2065: 
 'interpreter_frame_last_sp_offset' : identificateur non déclaré
 1..\..\src\cpu\x86\vm\frame_x86.cpp(693): error C2039: 
 'interpreter_frame_method_offset' : n'est pas membre de 'frame'
 1 Z:\DEV\OpenJDK7u\hotspot\src\share\vm\runtime/frame.hpp(73) : voir la 
 déclaration de 'frame'
 1..\..\src\cpu\x86\vm\frame_x86.cpp(693): error C2065: 
 'interpreter_frame_method_offset' : identificateur non déclaré
 1..\..\src\cpu\x86\vm\frame_x86.cpp(694): error C2039: 
 'interpreter_frame_mdx_offset' : n'est pas membre de 'frame'
 1 Z:\DEV\OpenJDK7u\hotspot\src\share\vm\runtime/frame.hpp(73) : voir la 
 déclaration de 'frame'
 1..\..\src\cpu\x86\vm\frame_x86.cpp(694): error C2065: 
 'interpreter_frame_mdx_offset' : identificateur non déclaré
 1..\..\src\cpu\x86\vm\frame_x86.cpp(695): error C2039: 
 'interpreter_frame_cache_offset' : n'est pas membre de 'frame'
 1 Z:\DEV\OpenJDK7u\hotspot\src\share\vm\runtime/frame.hpp(73) : voir la 
 déclaration de 'frame'
 1..\..\src\cpu\x86\vm\frame_x86.cpp(695): error C2065: 
 'interpreter_frame_cache_offset' : identificateur non déclaré
 1..\..\src\cpu\x86\vm\frame_x86.cpp(696): error C2039: 
 'interpreter_frame_locals_offset' : n'est pas membre de 'frame'
 1 Z:\DEV\OpenJDK7u\hotspot\src\share\vm\runtime/frame.hpp(73) : voir la 
 déclaration de 'frame'
 1..\..\src\cpu\x86\vm\frame_x86.cpp(696): error C2065: 
 'interpreter_frame_locals_offset' : identificateur non déclaré
 1..\..\src\cpu\x86\vm\frame_x86.cpp(697): error C2039: 
 'interpreter_frame_bcx_offset' : n'est pas membre de 'frame'
 1 Z:\DEV\OpenJDK7u\hotspot\src\share\vm\runtime/frame.hpp(73) : voir la 
 déclaration de 'frame'
 1..\..\src\cpu\x86\vm\frame_x86.cpp(697): error C2065: 
 'interpreter_frame_bcx_offset' : identificateur non déclaré
 1..\..\src\cpu\x86\vm\frame_x86.cpp(698): error C2039: 
 'interpreter_frame_initial_sp_offset' : n'est pas membre de 'frame'
 1 Z:\DEV\OpenJDK7u\hotspot\src\share\vm\runtime/frame.hpp(73) : voir la 
 déclaration de 'frame'
 1..\..\src\cpu\x86\vm\frame_x86.cpp(698): error C2065: 
 'interpreter_frame_initial_sp_offset' : identificateur non déclaré
 1  sharedRuntime_x86_32.cpp
 1..\..\src\cpu\x86\vm\interp_masm_x86_32.cpp(56): error C2220: avertissement 
 considéré comme une erreur - aucun fichier 'object' généré
 1..\..\src\cpu\x86\vm\interp_masm_x86_32.cpp(56): warning C4146: opérateur 
 moins unaire appliqué à un type non signé, le résultat sera non signé
 1..\..\src\cpu\x86\vm\interp_masm_x86_32.cpp(1414): error C2039: 
 'increment_mask_and_jump' : n'est pas membre de 'InterpreterMacroAssembler'
 1 z:\dev\openjdk7u\hotspot\src\cpu\x86\vm\interp_masm_x86_32.hpp(34) : voir 
 la déclaration de 'InterpreterMacroAssembler'
 1..\..\src\cpu\x86\vm\interp_masm_x86_32.cpp(1417): error C2061: erreur de 
 syntaxe : identificateur 'Condition'
 1..\..\src\cpu\x86\vm\interp_masm_x86_32.cpp(1419): error C3861: 'movl' : 
 identificateur introuvable
 1..\..\src\cpu\x86\vm\interp_masm_x86_32.cpp(1421): 

Re: JDK7u, hotspot, CC_INTERP, and COBOL

2013-09-26 Thread Francis ANDRE
Hi Christian

Ok, I will have a look at Zero and try to make it on windows. Thanks for the 
pointer.

Le 27/09/2013 04:19, Christian Thalinger a écrit :
 On Sep 25, 2013, at 10:52 AM, Francis ANDRE 
 francis.andre.kampb...@orange.fr wrote:

 Hi

 On WXP with VS2010 and the http://hg.openjdk.java.net/jdk7u/jdk7u/hotspot/ 
 repository, I successfully build and ran the debug version of hotspot in 
 compiler1 directory. fine

 Next, I tried  to get working the bytecode cppInterpreter instead of the 
 template based interpreter adding the CC_INTERP=true preprocessor define, 
 but I got several compile errors -- see below --

 By looking at the Wiki and the OpenJDK website, I discovered that the 
 cppInterpreter was no more maintained.
 I have no idea if it works on Windows but on Linux you can build Zero:

 http://openjdk.java.net/projects/zero/

 Zero uses the C++ interpreter.


 So I am wondering why the cppInterpreter is not anymore maintained and would 
 like to understand if this decision is definitive or not, because it seems 
 to me that there are very few errors. (see above) and that, IMHO, a somewhat 
 small effort should be made to fix the cppInterpreter (but it could be 
 totally wrong).

 I need the cppInterpreter to make a proposal to the MLVM project to slightly 
 change the JVM spec for all xALOAD  and xASTORE bytecodes for a specific 
 class version number for an efficient support of a _COBOL __runtime_.

 Regards

 Francis


 cppInterpreter_x86.cpp
 1  frame_x86.cpp
 1  interpreter_x86_32.cpp
 1  interp_masm_x86_32.cpp
 1..\..\src\cpu\x86\vm\frame_x86.cpp(691): error C2039: 
 'interpreter_frame_sender_sp_offset' : n'est pas membre de 'frame'
 1 Z:\DEV\OpenJDK7u\hotspot\src\share\vm\runtime/frame.hpp(73) : voir la 
 déclaration de 'frame'
 1..\..\src\cpu\x86\vm\frame_x86.cpp(691): error C2065: 
 'interpreter_frame_sender_sp_offset' : identificateur non déclaré
 1..\..\src\cpu\x86\vm\frame_x86.cpp(692): error C2039: 
 'interpreter_frame_last_sp_offset' : n'est pas membre de 'frame'
 1 Z:\DEV\OpenJDK7u\hotspot\src\share\vm\runtime/frame.hpp(73) : voir la 
 déclaration de 'frame'
 1..\..\src\cpu\x86\vm\frame_x86.cpp(692): error C2065: 
 'interpreter_frame_last_sp_offset' : identificateur non déclaré
 1..\..\src\cpu\x86\vm\frame_x86.cpp(693): error C2039: 
 'interpreter_frame_method_offset' : n'est pas membre de 'frame'
 1 Z:\DEV\OpenJDK7u\hotspot\src\share\vm\runtime/frame.hpp(73) : voir la 
 déclaration de 'frame'
 1..\..\src\cpu\x86\vm\frame_x86.cpp(693): error C2065: 
 'interpreter_frame_method_offset' : identificateur non déclaré
 1..\..\src\cpu\x86\vm\frame_x86.cpp(694): error C2039: 
 'interpreter_frame_mdx_offset' : n'est pas membre de 'frame'
 1 Z:\DEV\OpenJDK7u\hotspot\src\share\vm\runtime/frame.hpp(73) : voir la 
 déclaration de 'frame'
 1..\..\src\cpu\x86\vm\frame_x86.cpp(694): error C2065: 
 'interpreter_frame_mdx_offset' : identificateur non déclaré
 1..\..\src\cpu\x86\vm\frame_x86.cpp(695): error C2039: 
 'interpreter_frame_cache_offset' : n'est pas membre de 'frame'
 1 Z:\DEV\OpenJDK7u\hotspot\src\share\vm\runtime/frame.hpp(73) : voir la 
 déclaration de 'frame'
 1..\..\src\cpu\x86\vm\frame_x86.cpp(695): error C2065: 
 'interpreter_frame_cache_offset' : identificateur non déclaré
 1..\..\src\cpu\x86\vm\frame_x86.cpp(696): error C2039: 
 'interpreter_frame_locals_offset' : n'est pas membre de 'frame'
 1 Z:\DEV\OpenJDK7u\hotspot\src\share\vm\runtime/frame.hpp(73) : voir la 
 déclaration de 'frame'
 1..\..\src\cpu\x86\vm\frame_x86.cpp(696): error C2065: 
 'interpreter_frame_locals_offset' : identificateur non déclaré
 1..\..\src\cpu\x86\vm\frame_x86.cpp(697): error C2039: 
 'interpreter_frame_bcx_offset' : n'est pas membre de 'frame'
 1 Z:\DEV\OpenJDK7u\hotspot\src\share\vm\runtime/frame.hpp(73) : voir la 
 déclaration de 'frame'
 1..\..\src\cpu\x86\vm\frame_x86.cpp(697): error C2065: 
 'interpreter_frame_bcx_offset' : identificateur non déclaré
 1..\..\src\cpu\x86\vm\frame_x86.cpp(698): error C2039: 
 'interpreter_frame_initial_sp_offset' : n'est pas membre de 'frame'
 1 Z:\DEV\OpenJDK7u\hotspot\src\share\vm\runtime/frame.hpp(73) : voir la 
 déclaration de 'frame'
 1..\..\src\cpu\x86\vm\frame_x86.cpp(698): error C2065: 
 'interpreter_frame_initial_sp_offset' : identificateur non déclaré
 1  sharedRuntime_x86_32.cpp
 1..\..\src\cpu\x86\vm\interp_masm_x86_32.cpp(56): error C2220: 
 avertissement considéré comme une erreur - aucun fichier 'object' généré
 1..\..\src\cpu\x86\vm\interp_masm_x86_32.cpp(56): warning C4146: opérateur 
 moins unaire appliqué à un type non signé, le résultat sera non signé
 1..\..\src\cpu\x86\vm\interp_masm_x86_32.cpp(1414): error C2039: 
 'increment_mask_and_jump' : n'est pas membre de 'InterpreterMacroAssembler'
 1 z:\dev\openjdk7u\hotspot\src\cpu\x86\vm\interp_masm_x86_32.hpp(34) : voir 
 la déclaration de 'InterpreterMacroAssembler'
 1..\..\src\cpu\x86\vm\interp_masm_x86_32.cpp(1417): error C2061: erreur de 
 syntaxe : identificateur 'Condition'
 

JDK7u, hotspot, CC_INTERP, and COBOL

2013-09-25 Thread Francis ANDRE

Hi

On WXP with VS2010 and the http://hg.openjdk.java.net/jdk7u/jdk7u/hotspot/ 
repository, I successfully build and ran the debug version of hotspot in 
compiler1 directory. fine


Next, I tried  to get working the bytecode cppInterpreter instead of the 
template based interpreter adding the CC_INTERP=true preprocessor define, but I 
got several compile errors -- see below --


By looking at the Wiki and the OpenJDK website, I discovered that the 
cppInterpreter was no more maintained.


So I am wondering why the cppInterpreter is not anymore maintained and would 
like to understand if this decision is definitive or not, because it seems to me 
that there are very few errors. (see above) and that, IMHO, a somewhat small 
effort should be made to fix the cppInterpreter (but it could be totally wrong).


I need the cppInterpreter to make a proposal to the MLVM project to slightly 
change the JVM spec for all xALOAD  and xASTORE bytecodes for a specific class 
version number for an efficient support of a _COBOL __runtime_.


Regards

Francis


 cppInterpreter_x86.cpp
1  frame_x86.cpp
1  interpreter_x86_32.cpp
1  interp_masm_x86_32.cpp
1..\..\src\cpu\x86\vm\frame_x86.cpp(691): error C2039: 
'interpreter_frame_sender_sp_offset' : n'est pas membre de 'frame'
1 Z:\DEV\OpenJDK7u\hotspot\src\share\vm\runtime/frame.hpp(73) : voir la 
déclaration de 'frame'
1..\..\src\cpu\x86\vm\frame_x86.cpp(691): error C2065: 
'interpreter_frame_sender_sp_offset' : identificateur non déclaré
1..\..\src\cpu\x86\vm\frame_x86.cpp(692): error C2039: 
'interpreter_frame_last_sp_offset' : n'est pas membre de 'frame'
1 Z:\DEV\OpenJDK7u\hotspot\src\share\vm\runtime/frame.hpp(73) : voir la 
déclaration de 'frame'
1..\..\src\cpu\x86\vm\frame_x86.cpp(692): error C2065: 
'interpreter_frame_last_sp_offset' : identificateur non déclaré
1..\..\src\cpu\x86\vm\frame_x86.cpp(693): error C2039: 
'interpreter_frame_method_offset' : n'est pas membre de 'frame'
1 Z:\DEV\OpenJDK7u\hotspot\src\share\vm\runtime/frame.hpp(73) : voir la 
déclaration de 'frame'
1..\..\src\cpu\x86\vm\frame_x86.cpp(693): error C2065: 
'interpreter_frame_method_offset' : identificateur non déclaré
1..\..\src\cpu\x86\vm\frame_x86.cpp(694): error C2039: 
'interpreter_frame_mdx_offset' : n'est pas membre de 'frame'
1 Z:\DEV\OpenJDK7u\hotspot\src\share\vm\runtime/frame.hpp(73) : voir la 
déclaration de 'frame'
1..\..\src\cpu\x86\vm\frame_x86.cpp(694): error C2065: 
'interpreter_frame_mdx_offset' : identificateur non déclaré
1..\..\src\cpu\x86\vm\frame_x86.cpp(695): error C2039: 
'interpreter_frame_cache_offset' : n'est pas membre de 'frame'
1 Z:\DEV\OpenJDK7u\hotspot\src\share\vm\runtime/frame.hpp(73) : voir la 
déclaration de 'frame'
1..\..\src\cpu\x86\vm\frame_x86.cpp(695): error C2065: 
'interpreter_frame_cache_offset' : identificateur non déclaré
1..\..\src\cpu\x86\vm\frame_x86.cpp(696): error C2039: 
'interpreter_frame_locals_offset' : n'est pas membre de 'frame'
1 Z:\DEV\OpenJDK7u\hotspot\src\share\vm\runtime/frame.hpp(73) : voir la 
déclaration de 'frame'
1..\..\src\cpu\x86\vm\frame_x86.cpp(696): error C2065: 
'interpreter_frame_locals_offset' : identificateur non déclaré
1..\..\src\cpu\x86\vm\frame_x86.cpp(697): error C2039: 
'interpreter_frame_bcx_offset' : n'est pas membre de 'frame'
1 Z:\DEV\OpenJDK7u\hotspot\src\share\vm\runtime/frame.hpp(73) : voir la 
déclaration de 'frame'
1..\..\src\cpu\x86\vm\frame_x86.cpp(697): error C2065: 
'interpreter_frame_bcx_offset' : identificateur non déclaré
1..\..\src\cpu\x86\vm\frame_x86.cpp(698): error C2039: 
'interpreter_frame_initial_sp_offset' : n'est pas membre de 'frame'
1 Z:\DEV\OpenJDK7u\hotspot\src\share\vm\runtime/frame.hpp(73) : voir la 
déclaration de 'frame'
1..\..\src\cpu\x86\vm\frame_x86.cpp(698): error C2065: 
'interpreter_frame_initial_sp_offset' : identificateur non déclaré

1  sharedRuntime_x86_32.cpp
1..\..\src\cpu\x86\vm\interp_masm_x86_32.cpp(56): error C2220: avertissement 
considéré comme une erreur - aucun fichier 'object' généré
1..\..\src\cpu\x86\vm\interp_masm_x86_32.cpp(56): warning C4146: opérateur 
moins unaire appliqué à un type non signé, le résultat sera non signé
1..\..\src\cpu\x86\vm\interp_masm_x86_32.cpp(1414): error C2039: 
'increment_mask_and_jump' : n'est pas membre de 'InterpreterMacroAssembler'
1 z:\dev\openjdk7u\hotspot\src\cpu\x86\vm\interp_masm_x86_32.hpp(34) : voir la 
déclaration de 'InterpreterMacroAssembler'
1..\..\src\cpu\x86\vm\interp_masm_x86_32.cpp(1417): error C2061: erreur de 
syntaxe : identificateur 'Condition'
1..\..\src\cpu\x86\vm\interp_masm_x86_32.cpp(1419): error C3861: 'movl' : 
identificateur introuvable
1..\..\src\cpu\x86\vm\interp_masm_x86_32.cpp(1421): error C3861: 'incrementl' : 
identificateur introuvable
1..\..\src\cpu\x86\vm\interp_masm_x86_32.cpp(1422): error C3861: 'movl' : 
identificateur introuvable
1..\..\src\cpu\x86\vm\interp_masm_x86_32.cpp(1423): error C3861: 'andl' : 
identificateur introuvable
1..\..\src\cpu\x86\vm\interp_masm_x86_32.cpp(1424): error