RFR: 8013393: Merge templateTable_x86 32 and 64 bit files into one file.

Max Ockner max.ockner at oracle.com
Fri Feb 27 17:36:11 UTC 2015

Hello all,
Please review this change which involves merging 32 and 64 bit 
interpreter files.

Bug ID: 8013393
Webrev: cr.openjdk.java.net/~coleenp/8013393

Summary: templateTable_x86_64.cpp and templateTable_x86_32.cpp have been 
merged into one file*. These files originally shared thousands of lines 
of duplicate code.
There were also many nearly identical sections of code which differed 
only in register usage (example: rsi vs. r13) or in the usage of nearly 
identical functions (example: movptr vs. movq/movl).
Given that (1) new bytecodes could be added soon, and (2) these files 
have been tormenting Coleen for years, this change seems overdue.

*There are currently two files. The updated templateTable_x86.cpp is 
copied into both templateTable_x86_32.cpp and templateTable_x86_64.cpp 
to make it easier to review (so the diff is not the entire file). This 
will be changed back to one file after review.

For functions that could be merged, one copy was kept. In some cases, 
files were merged by factoring out small differences such as register 
usage (example: rbcp equals r13 or rsi depending on the platform). For 
functions that could not be merged, the 32 and 64 bit versions are 
adjacent and are defined conditionally using #ifdef based on the platform.

There are still improvements to be made, but they are small and can be 
filed seperately.

Tested with:
UTE nsk.jvmti.testlist

Max Ockner

More information about the hotspot-dev mailing list