JDK-8340731 : Cleanup remaining IA64 references in hotspot code
  • Type: Enhancement
  • Component: hotspot
  • Sub-Component: runtime
  • Affected Version: 24
  • Priority: P4
  • Status: New
  • Resolution: Unresolved
  • Submitted: 2024-09-24
  • Updated: 2024-09-24
Related Reports
Relates :  
Description
We expunged the bulk of the IA64 code in JDK-6518907 many years ago, but some remnants remain

./os/bsd/os_bsd.cpp:#elif defined(IA64)
./os/bsd/os_bsd.cpp:  #elif  (defined IA64)
./os/bsd/os_bsd.cpp:         IA32, AMD64, IA64, __powerpc__, ARM, S390, ALPHA, MIPS, MIPSEL, PARISC, M68K
./os/linux/hugepages.cpp:  // mode is enabled. AMD64/EM64T uses 2M page in 64bit mode. IA64 can use
./os/linux/os_linux.cpp:#elif  (defined IA64)
./os/linux/os_linux.cpp:        AARCH64, ALPHA, ARM, AMD64, IA32, IA64, LOONGARCH64, M68K, MIPS, MIPSEL, PARISC, __powerpc__, __powerpc64__, RISCV, S390, SH, __sparc
./os/linux/os_linux.cpp:#elif defined(IA64)
./os/linux/os_linux.cpp:  strncpy(cpuinfo, "IA64", length);
./os/posix/signals_posix.cpp:#if defined(IA64) && defined(LINUX)
./os/posix/signals_posix.cpp:#if defined(IA64) && !defined(AIX)
./share/opto/generateOptoStub.cpp:#if (defined(IA64) && !defined(AIX))
./share/opto/output.cpp:  // and memory stacks (ie. IA64).
./share/opto/chaitin.cpp:          // IA64     1     1     1          1    1         50          41
./share/runtime/abstract_vm_version.cpp:                 IA64_ONLY("ia64")               \
./share/utilities/macros.hpp:// This is a REALLY BIG HACK, but on AIX <sys/systemcfg.h> unconditionally defines IA64.
./share/utilities/macros.hpp:#if defined(IA64) && !defined(AIX)
./share/utilities/macros.hpp:#define IA64_ONLY(code) code
./share/utilities/macros.hpp:#define NOT_IA64(code)
./share/utilities/macros.hpp:#define IA64_ONLY(code)
./share/utilities/macros.hpp:#define NOT_IA64(code) code
./share/utilities/elfFuncDescTable.cpp:  // first value in the function descriptor (on IA64 and PPC64 they look as follows):
./share/utilities/elfFuncDescTable.cpp:  // IA64 : [function entry point, GP (global pointer) value]
./share/utilities/elfFuncDescTable.cpp:  // assert(IA64_ONLY(2) PPC64_ONLY(3) * sizeof(address) == shdr.sh_entsize, "Size mismatch for '.opd' section entries");
./share/utilities/elfFuncDescTable.hpp:On PowerPC-64 (and other architectures like for example IA64) a pointer to a
hotspot-oraclelinux-12 /scratch/users/daholme/jdk-dev.git/open/src/hotspot > grepsrc.sh ia64
./os/bsd/os_bsd.cpp:static char cpu_arch[] = "ia64";
./os/linux/os_linux.cpp:// i386: 224, ia64: 1105, amd64: 186, sparc: 143
./os/linux/os_linux.cpp:  #ifdef __ia64__
./share/runtime/deoptimization.cpp:  // Note: on ia64 this guarantee can be fooled by frames with no memory stack
./share/runtime/deoptimization.cpp:    // 4852688: ProfileInterpreter is off by default for ia64.  The result is
./share/runtime/abstract_vm_version.cpp:                 IA64_ONLY("ia64")               \
./share/runtime/frame.hpp:  // For sparc and ia32 use sp. ia64 can have memory frames that are empty so multiple frames
./share/runtime/frame.hpp:  // will have identical sp values. For ia64 the bsp (fp) value will serve. No real frame
./share/runtime/os.hpp:  // only walk stack if %ebp is used as frame pointer; on ia64, it's not
./share/runtime/javaCalls.cpp:  // on sparc/ia64 which will catch violations of the resetting of last_Java_frame
./share/runtime/relocator.cpp:    case Bytecodes::_lookupswitch:                   // not rewritten on ia64

Note references to IA64 in Zero code should remain.

There are some sparc leftovers in the above too.