| by Arround The Web | No comments

lightning @ Savannah: GNU lightning 2.2.1 release

GNU lightning is a library to aid in making portable programs

that compile assembly code at run time.

Development:

http://git.savannah.gnu.org/cgit/lightning.git

Download release:

ftp://ftp.gnu.org/gnu/lightning/lightning-2.2.1.tar.gz

  GNU Lightning 2.2.1 main new features:

  • Variable stack framesize implemented for aarch64, arm, i686, mips, riscv, loongarch and x86_64. This means function calls use only the minimum required stack space for prolog and epilog.
  • Optimization of prolog and epilog to not create a frame pointer if not required, and not even save and restore the stack pointer if not required on a leaf function. These features implemented for the ports with variable stack framesize.
  • New clor, czr, ctor and ctzr instructions, that count leading/trailing zeros/ones. These use hardware implementation when available, otherwise fallback to a software implementation.
  • Correct several bugs with jit_arg_register_p and jit_putarg{r,i}{_f,_d}. These bugs were not noticed earlier due to an incorrect check for correctness in check/carg.c.
  • Add rip relative addressing support for x86_64 and shorter signed 64 bit constant load if the constant fits in a signed 32 bit integer. This significantly reduces code size generation.
  • Correct bugs in branch generation code for pppc and sparc.
  • Correct bug in signed 32 bit integer load in ppc 64 bits.
  • Add short relative unconditional branches and calls to mips, reducing code size generation.
  • And several extra minor optimizations.
Share Button

Source: Planet GNU

Leave a Reply