Branch/Call/Jump filter for Itanium (IA-64) machine code. Scans 16-byte instruction bundles, uses the 5-bit template field to find slots holding B-unit branch instructions with major opcode 4, and rewrites their bundle-relative 25-bit target into an absolute address so repeated branches to the same target produce identical byte sequences.
| Property | Value |
|---|---|
| Category | Compression Algorithms |
| Sub-category | Transform |
| Security status | Not classified |
| Complexity | Advanced |
| Inventor | Igor Pavlov |
| Year | 2003 |
| Origin | 🇷🇺 Russia |
| Source | algorithms/compression/bcj-ia64.js |
Status: not classified — treat as unverified.
No vulnerabilities are recorded for this implementation.
2 vectors ship with this algorithm and run in the test suite. Byte values are hexadecimal.
Vector 1 — Empty buffer
| Field | Value |
|---|---|
input |
(empty) |
expected |
(empty) |
Vector 2 — Padding bundle followed by a bundle with a branch in slot 1 (template 18)
| Field | Value |
|---|---|
input |
0000000000000000000000000000000012000000000000180900200000000000 |
expected |
0000000000000000000000000000000012000000000000200900200000000000 |