mirror of
https://git.savannah.gnu.org/git/guile.git
synced 2025-06-21 11:10:21 +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
|
@ -1237,6 +1237,7 @@ _jit_classify(jit_state_t *_jit, jit_code_t code)
|
|||
break;
|
||||
case jit_code_addi: case jit_code_addxi: case jit_code_addci:
|
||||
case jit_code_subi: case jit_code_subxi: case jit_code_subci:
|
||||
case jit_code_rsbi:
|
||||
case jit_code_muli: case jit_code_divi: case jit_code_divi_u:
|
||||
case jit_code_remi: case jit_code_remi_u: case jit_code_andi:
|
||||
case jit_code_ori: case jit_code_xori: case jit_code_lshi:
|
||||
|
@ -1254,20 +1255,22 @@ _jit_classify(jit_state_t *_jit, jit_code_t code)
|
|||
mask = jit_cc_a0_reg|jit_cc_a0_rlh|jit_cc_a0_chg|
|
||||
jit_cc_a1_reg|jit_cc_a2_int;
|
||||
break;
|
||||
case jit_code_addi_f: case jit_code_subi_f: case jit_code_muli_f:
|
||||
case jit_code_divi_f: case jit_code_lti_f: case jit_code_lei_f:
|
||||
case jit_code_eqi_f: case jit_code_gei_f: case jit_code_gti_f:
|
||||
case jit_code_nei_f: case jit_code_unlti_f: case jit_code_unlei_f:
|
||||
case jit_code_uneqi_f: case jit_code_ungei_f: case jit_code_ungti_f:
|
||||
case jit_code_ltgti_f: case jit_code_ordi_f: case jit_code_unordi_f:
|
||||
case jit_code_addi_f: case jit_code_subi_f: case jit_code_rsbi_f:
|
||||
case jit_code_muli_f: case jit_code_divi_f: case jit_code_lti_f:
|
||||
case jit_code_lei_f: case jit_code_eqi_f: case jit_code_gei_f:
|
||||
case jit_code_gti_f: case jit_code_nei_f: case jit_code_unlti_f:
|
||||
case jit_code_unlei_f: case jit_code_uneqi_f: case jit_code_ungei_f:
|
||||
case jit_code_ungti_f: case jit_code_ltgti_f: case jit_code_ordi_f:
|
||||
case jit_code_unordi_f:
|
||||
mask = jit_cc_a0_reg|jit_cc_a0_chg|jit_cc_a1_reg|jit_cc_a2_flt;
|
||||
break;
|
||||
case jit_code_addi_d: case jit_code_subi_d: case jit_code_muli_d:
|
||||
case jit_code_divi_d: case jit_code_lti_d: case jit_code_lei_d:
|
||||
case jit_code_eqi_d: case jit_code_gei_d: case jit_code_gti_d:
|
||||
case jit_code_nei_d: case jit_code_unlti_d: case jit_code_unlei_d:
|
||||
case jit_code_uneqi_d: case jit_code_ungei_d: case jit_code_ungti_d:
|
||||
case jit_code_ltgti_d: case jit_code_ordi_d: case jit_code_unordi_d:
|
||||
case jit_code_addi_d: case jit_code_subi_d: case jit_code_rsbi_d:
|
||||
case jit_code_muli_d: case jit_code_divi_d: case jit_code_lti_d:
|
||||
case jit_code_lei_d: case jit_code_eqi_d: case jit_code_gei_d:
|
||||
case jit_code_gti_d: case jit_code_nei_d: case jit_code_unlti_d:
|
||||
case jit_code_unlei_d: case jit_code_uneqi_d: case jit_code_ungei_d:
|
||||
case jit_code_ungti_d: case jit_code_ltgti_d: case jit_code_ordi_d:
|
||||
case jit_code_unordi_d:
|
||||
mask = jit_cc_a0_reg|jit_cc_a0_chg|jit_cc_a1_reg|jit_cc_a2_dbl;
|
||||
break;
|
||||
case jit_code_addr: case jit_code_addxr: case jit_code_addcr:
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue