Project links: repo (mirror), issues, CI: ARM, x86
ARM Jazelle DBX ("direct bytecode execution")1 is a ARM32 instruction set
extension that allows running Java bytecode directly on certain CPUs.
Jazelle mode is entered by executing a special branch instruction, BXJ
.
Jazelle hardware support is rather widespread within a certain timeframe of manufacturing dates, since it was included in the ARM926EJ-S and ARM1176JZF-S CPUs at the heart of many devices.
Jazelle software support is rather rare, because it presumably relies on a
proprietary JVM licensed by ARM, and the hardware isn't openly documented like
the rest of the ARM architecture(s). This is where jzvm
comes in: It is an
attempt to create both an open source software implementation, and hardware
documentation for Jazelle.
The source code in this repository is licensed under the LGPL 2.1
- Wikipedia: https://en.wikipedia.org/wiki/Jazelle
- the Hackspire wiki: https://hackspire.org/index.php/Jazelle
- a previous attempt at using Jazelle: https://github.com/SonoSooS/libjz/wiki/About
- and an Advent-of-Code solution: https://github.com/aspargas2/advent-of-code-2022/tree/main/day05-jazelle
- ARMv5 Architecture Reference Manual [DDI0100I]: https://developer.arm.com/documentation/ddi0100/i/
Footnotes
-
The Jazelle brand has later been reused for an unrelated technology, Jazelle RCT. When I say Jazelle it will mean Jazelle DBX most of the time. ↩