Development Notes - open-watcom/open-watcom-v2 GitHub Wiki
This document contains a collection of unorganized notes. The information here should be organized better at some point but in the meantime it is better here than lost.
Extend existing / add a new Processor Architecture
OpenWatcom has still no support for many Processors:
- MMX, SIMD,AVX, ... Modern instruction sets for x86
- amd64/x86_64 (internal Name: x64)
- aarch64 (Internal Name: a64)
- arm
Things to consider, when extending to 64bit or adding a new architecture. (This list is long, not sorted and incomplete)
- 64 bit CPUs: Alignment of functions / stack / args ... must increase to 16 Byte
- 32+64bit: Many currently unsupported CPU commands need higher alignments (MMX/SIMD/AVX)
- orl & owl: (Object Reader Library & Object Writer Library)
- ELF Support and COFF Support for RISC architecture
- many projects: Object reading/writing for the x86 family
- wdis (ndisasm): Disassembler for all file formats and architectures
- wdump (exedump): Executable/DLL/Library/Object dumping tool
- wlink (wl): Linker for all file formats and architectures
- wlib (nwlib): Object file archive tool for all file formats and architectures
- dwarf: Debug info support for ELF file format
- wd & wdw (wv): Debugger for all file formats and architectures
- dig / dig: Debug format support
- wasarm / wasa64: RISC Assembler for arm and aarch64/a64
- wasm: Assembler for the x86 family
- wcpp: preprocessor for all C/C++ Compiler
- cg: The code generator (backend for C/C++/FORTRAN compiler)
- wccarm / wcca64 / wccx64: C compiler for arm, aarch64, x86_64
- wpparm / wppa64 / wppx64: C++ compiler for arm, aarch64, x86_64
- wfc (f77): FORTRAN compiler
- clib: C Runtime library
- cpplib: C++ Runtime library
- mathlib: Math support library
- fpuemu: FPU emulation
- owcc: Compile and Link utility (posix style command line args)
- wclarm / wcla64 / wclx64: Compile and Link utility (OW style command line args) There are a lot more modules in the bld directory
Probably resuable work (for backports / tests / comparsion):
- Forks of wasm & wlink, extended for x86_64 and new CPU instructions
(with 'Sybase Open Watcom Public License')
- jwasm Homepage
- jwasm on github
- jwlink Homepage
- jwlink on github There are more forks of wasm/jwasm and wlink/jwlink on Github
- FASM / FASMARM: A free Assembler