mirror of
https://git.savannah.gnu.org/git/guile.git
synced 2025-05-02 21:10:27 +02:00
Implement the jit_rsb* interface.
* check/alu_rsb.ok, check/alu_rsb.tst: New files implementing tests for jit_rsb*. * check/Makefile.am, check/lightning.c, include/lightning.h, lib/jit_aarch64-cpu.c, lib/jit_aarch64-fpu.c, lib/jit_aarch64-sz.c, lib/jit_aarch64.c, lib/jit_alpha-cpu.c, lib/jit_alpha-fpu.c, lib/jit_alpha-sz.c, lib/jit_alpha.c, lib/jit_arm-cpu.c, lib/jit_arm-swf.c, lib/jit_arm-sz.c, lib/jit_arm-vfp.c, lib/jit_arm.c, lib/jit_hppa-cpu.c, lib/jit_hppa-fpu.c, lib/jit_hppa-sz.c, lib/jit_hppa.c, lib/jit_ia64-cpu.c, lib/jit_ia64-fpu.c, lib/jit_ia64-sz.c, lib/jit_ia64.c, lib/jit_mips-cpu.c, lib/jit_mips-fpu.c, lib/jit_mips-sz.c, lib/jit_mips.c, lib/jit_names.c, lib/jit_ppc-cpu.c, lib/jit_ppc-fpu.c, lib/jit_ppc-sz.c, lib/jit_ppc.c, lib/jit_s390x-cpu.c, lib/jit_s390x-fpu.c, lib/jit_s390x-sz.c, lib/jit_s390x.c, lib/jit_sparc-cpu.c, lib/jit_sparc-fpu.c, lib/jit_sparc-sz.c, lib/jit_sparc.c, lib/jit_x86-cpu.c, lib/jit_x86-sse.c, lib/jit_x86-sz.c, lib/jit_x86-x87.c, lib/jit_x86.c, lib/lightning.c: Implement jit_rsb*. This was a missing lightning 1.x interface, that on most backends is synthesized, but on a few backends (hppa and ia64), it can generate better code as on those there is, or the only instruction with an immediate is in "rsb" format (left operand).
This commit is contained in:
parent
624cf33d08
commit
960280decd
50 changed files with 494 additions and 44 deletions
|
@ -228,7 +228,9 @@ typedef enum {
|
|||
#define jit_subxr(u,v,w) jit_new_node_www(jit_code_subxr,u,v,w)
|
||||
#define jit_subxi(u,v,w) jit_new_node_www(jit_code_subxi,u,v,w)
|
||||
jit_code_subxr, jit_code_subxi,
|
||||
|
||||
#define jit_rsbr(u,v,w) jit_subr(u,w,v)
|
||||
#define jit_rsbi(u,v,w) jit_new_node_www(jit_code_rsbi,u,v,w)
|
||||
jit_code_rsbi,
|
||||
#define jit_mulr(u,v,w) jit_new_node_www(jit_code_mulr,u,v,w)
|
||||
#define jit_muli(u,v,w) jit_new_node_www(jit_code_muli,u,v,w)
|
||||
jit_code_mulr, jit_code_muli,
|
||||
|
@ -533,6 +535,9 @@ typedef enum {
|
|||
#define jit_subr_f(u,v,w) jit_new_node_www(jit_code_subr_f,u,v,w)
|
||||
#define jit_subi_f(u,v,w) jit_new_node_wwf(jit_code_subi_f,u,v,w)
|
||||
jit_code_subr_f, jit_code_subi_f,
|
||||
#define jit_rsbr_f(u,v,w) jit_subr_f(u,w,v)
|
||||
#define jit_rsbi_f(u,v,w) jit_new_node_wwf(jit_code_rsbi_f,u,v,w)
|
||||
jit_code_rsbi_f,
|
||||
#define jit_mulr_f(u,v,w) jit_new_node_www(jit_code_mulr_f,u,v,w)
|
||||
#define jit_muli_f(u,v,w) jit_new_node_wwf(jit_code_muli_f,u,v,w)
|
||||
jit_code_mulr_f, jit_code_muli_f,
|
||||
|
@ -675,6 +680,9 @@ typedef enum {
|
|||
#define jit_subr_d(u,v,w) jit_new_node_www(jit_code_subr_d,u,v,w)
|
||||
#define jit_subi_d(u,v,w) jit_new_node_wwd(jit_code_subi_d,u,v,w)
|
||||
jit_code_subr_d, jit_code_subi_d,
|
||||
#define jit_rsbr_d(u,v,w) jit_subr_d(u,w,v)
|
||||
#define jit_rsbi_d(u,v,w) jit_new_node_wwd(jit_code_rsbi_d,u,v,w)
|
||||
jit_code_rsbi_d,
|
||||
#define jit_mulr_d(u,v,w) jit_new_node_www(jit_code_mulr_d,u,v,w)
|
||||
#define jit_muli_d(u,v,w) jit_new_node_wwd(jit_code_muli_d,u,v,w)
|
||||
jit_code_mulr_d, jit_code_muli_d,
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue