From 960280decd66fed85d9d64d2442008420c0cf73f Mon Sep 17 00:00:00 2001 From: pcpa Date: 2014年10月18日 11:31:18 -0300 Subject: 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). --- lib/jit_sparc.c | 3 +++ 1 file changed, 3 insertions(+) (limited to 'lib/jit_sparc.c') diff --git a/lib/jit_sparc.c b/lib/jit_sparc.c index a8488e2..dc1557c 100644 --- a/lib/jit_sparc.c +++ b/lib/jit_sparc.c @@ -745,6 +745,7 @@ _emit_code(jit_state_t *_jit) case_rrw(subc,); case_rrr(subx,); case_rrw(subx,); + case_rrw(rsb,); case_rrr(mul,); case_rrw(mul,); case_rrrr(qmul,); @@ -898,6 +899,7 @@ _emit_code(jit_state_t *_jit) case_rrf(add, _f, 32); case_rrr(sub, _f); case_rrf(sub, _f, 32); + case_rrf(rsb, _f, 32); case_rrr(mul, _f); case_rrf(mul, _f, 32); case_rrr(div, _f); @@ -980,6 +982,7 @@ _emit_code(jit_state_t *_jit) case_rrf(add, _d, 64); case_rrr(sub, _d); case_rrf(sub, _d, 64); + case_rrf(rsb, _d, 64); case_rrr(mul, _d); case_rrf(mul, _d, 64); case_rrr(div, _d); -- cgit v1.2.3

AltStyle によって変換されたページ (->オリジナル) /