Xbyak_s390x is a C++ library which enables run-time assemble coding with the s390x instruction set. Xbyak_s390x is based on Xbyak developed for x86_64 CPUs by MITSUNARI Shigeo.
- Gnu C++ inline assembly like syntax
- General instructions, Vector instructions, Extensions
- As endianness is handled correctly, it is fine to test it under x86 without execution
- Facility checks are not supported for now
- For now, it does not check for the correct Register pairs thats used by some instructions
Similar to GNU C++ inline assembly
| Assembly | Xbyak s390x |
|---|---|
| ldgr %f2, %r11 | ldgr(f2, r11); |
| ldgr %f0, %r15 | ldgr(f0, r15); |
| lay %r15, -168(%r15) | lay(r15, -168_dp(r15)); |
| cg %r0, 160(%r15) | cg(r0, 160_dp(r15)); |
| lgr %r11, %r15 | lgr(r11, r15); |
| lgr %r1, %r2 | lgr(r1, r2); |
| st %r1, 164(%r11) | st(r1, 164_dp(r11)); |
| l %r1, 164(%r11) | l(r1, 164_dp(r11)); |
| ahi %r1, 5 | ahi(r1, 5); |
| lgfr %r1, %r1 | lgfr(r1, r1); |
| lgr %r2, % r1 | lgr(r2, r1); |
| lgdr %r15, % f0 | lgdr(r15, f0); |
| lgdr %r11, % f2 | lgdr(r11, f2); |
| br %r14 | br(r14); |
| nopr %r7 | nopr(r7) |
Abdelrauf Gurbanov (xbyak s390x port)
MITSUNARI Shigeo (author of the original xbyak)