Porting OpenVMS to x86-64
Update
Clair Grant Camiel Vanderhoeven
April 8, 2016
Porting OpenVMS to x86-64 Update Clair Grant Camiel Vanderhoeven - - PowerPoint PPT Presentation
Porting OpenVMS to x86-64 Update Clair Grant Camiel Vanderhoeven April 8, 2016 Porting OpenVMS to x86-64 Update This information contains forward looking statements and is provided solely for your convenience. While the information herein
April 8, 2016
This information contains forward looking statements and is provided solely for your convenience. While the information herein is based on our current best estimates, such information is subject to change without notice.
Chapter 1 – Executable Images
Chapter 2 – Architecture-Specific Needs (a.k.a. “The 5%”)
Chapter 3 – Compiling and Linking Everything Else (a.k.a. “The 95%”)
C BLISS FORTRAN BASIC COBOL PASCAL MACRO C++
Intel
Ada
AdaCore
.obj
LINKER
.exe
Inner Workings of
1. Get source code and command line directives 2. Create Intermediate representation (IR) 3. Interpret IR 4. Generate target object file
GEM GEM
Assembler Interface
§ Continue with current GEM-based frontends § Use open source LLVM for backend code generation § Create internal representation (IR) translator § LLVM targets x86, ARM, PowerPC, MIPS, SPARC, and more C BLISS FORTRAN BASIC COBOL PASCAL MACRO C++
clang
Ada
??? Standard Interface SS Standard Interface
Standard Interface Assembler Interface .exe*
LINKER
LLVM
GEM IR LLVM IR
Translator .obj*
* = ELF just like Itanium
COMPLETE!
UNDERWAY
− Compile with DEC C/LLVM on OpenVMS Itanium, link and run on Linux
COMPLETE!
UNDERWAY
UNDERWAY
LLVM Calling Standard LINKER LLVM C XMACRO Calling Standard Linker x86ASM BLISS C XMACRO GEM Translator BLISS
− 640 opcodes in total − Test ‘byte streams’ created for each instruction; developed/verified
− Used by SDA, DELTA/XDELTA, DEBUG, SCD, ANALYZE/OBJECT
− Invocation Context (current, previous) − Registers − Unwind data
− Using UEFI 2.3 toolkit – Itanium and x86 COMPLETE! − Eliminate VMS boot drivers, use UEFI device drivers and memory disk COMPLETE! − New crash dump strategy and implementation TESTING − Eliminate HPE-specific firmware interfaces COMPLETE! − Create
COMPLETE!
PROTOTYPING
PROTOTYPING
PROTOTYPING
− Make better use of ACPI interface and tables PROTOTYPING − Create a graphical boot manager
PROTOTYPING
− X86 Machine check handling PROTOTYPING
evaluating
− Many aspects of the Calling Standard − Entering a more privileged mode − Interrupt handling
− Saved state − Exception frames − Context switching − System service calling
For more information, please contact us at:
VMS Software, Inc. • 580 Main Street • Bolton MA 01740 • +1 978 451 0110