1
Fork 0
mirror of https://git.savannah.gnu.org/git/guile.git synced 2025-06-26 21:20:30 +02:00

more fixes to fp branches

2010-08-20  Paolo Bonzini  <bonzini@gnu.org>

	* lightning/i386/fp-64.h: Return patch address from jit_bXYr_{f,d}.
	Reported by Paulo César Pereira de Andrade.
	* lightning/ppc/fp.h: Likewise.
	* lightning/sparc/fp.h: Implement FP branches.
This commit is contained in:
Paolo Bonzini 2010-08-20 10:08:43 +02:00
parent 688e75a092
commit 9564132c94
4 changed files with 77 additions and 33 deletions

View file

@ -205,6 +205,38 @@
#define jit_unordr_d(d, s1, s2) (FCMPDrr ((s1), (s2)), FBUi(_jit.x.pc + 3), MOVir (1, (d)), MOVir (0, (d)))
#define jit_unordr_f(d, s1, s2) (FCMPSrr ((s1), (s2)), FBUi(_jit.x.pc + 3), MOVir (1, (d)), MOVir (0, (d)))
#define jit_branchr_f(s1, s2, jmp) (FCMPSrr(s1, s2), jmp, NOP(), _jit.x.pc - 1)
#define jit_branchr_d(s1, s2, jmp) (FCMPDrr(s1, s2), jmp, NOP(), _jit.x.pc - 1)
#define jit_bltr_d(label, s1, s2) jit_branchr_d((s1), (s2), FBLi((label)))
#define jit_bltr_f(label, s1, s2) jit_branchr_f((s1), (s2), FBLi((label)))
#define jit_bler_d(label, s1, s2) jit_branchr_d((s1), (s2), FBLEi((label)))
#define jit_bler_f(label, s1, s2) jit_branchr_f((s1), (s2), FBLEi((label)))
#define jit_beqr_d(label, s1, s2) jit_branchr_d((s1), (s2), FBEi((label)))
#define jit_beqr_f(label, s1, s2) jit_branchr_f((s1), (s2), FBEi((label)))
#define jit_bner_d(label, s1, s2) jit_branchr_d((s1), (s2), FBNEi((label)))
#define jit_bner_f(label, s1, s2) jit_branchr_f((s1), (s2), FBNEi((label)))
#define jit_bger_d(label, s1, s2) jit_branchr_d((s1), (s2), FBGEi((label)))
#define jit_bger_f(label, s1, s2) jit_branchr_f((s1), (s2), FBGEi((label)))
#define jit_bgtr_d(label, s1, s2) jit_branchr_d((s1), (s2), FBGi((label)))
#define jit_bgtr_f(label, s1, s2) jit_branchr_f((s1), (s2), FBGi((label)))
#define jit_bunltr_d(label, s1, s2) jit_branchr_d((s1), (s2), FBULi((label)))
#define jit_bunltr_f(label, s1, s2) jit_branchr_f((s1), (s2), FBULi((label)))
#define jit_bunler_d(label, s1, s2) jit_branchr_d((s1), (s2), FBULEi((label)))
#define jit_bunler_f(label, s1, s2) jit_branchr_f((s1), (s2), FBULEi((label)))
#define jit_buneqr_d(label, s1, s2) jit_branchr_d((s1), (s2), FBUEi((label)))
#define jit_buneqr_f(label, s1, s2) jit_branchr_f((s1), (s2), FBUEi((label)))
#define jit_bltgtr_d(label, s1, s2) jit_branchr_d((s1), (s2), FBLGi((label)))
#define jit_bltgtr_f(label, s1, s2) jit_branchr_f((s1), (s2), FBLGi((label)))
#define jit_bunger_d(label, s1, s2) jit_branchr_d((s1), (s2), FBUGEi((label)))
#define jit_bunger_f(label, s1, s2) jit_branchr_f((s1), (s2), FBUGEi((label)))
#define jit_bungtr_d(label, s1, s2) jit_branchr_d((s1), (s2), FBUGi((label)))
#define jit_bungtr_f(label, s1, s2) jit_branchr_f((s1), (s2), FBUGi((label)))
#define jit_bordr_d(label, s1, s2) jit_branchr_d((s1), (s2), FBOi((label)))
#define jit_bordr_f(label, s1, s2) jit_branchr_f((s1), (s2), FBOi((label)))
#define jit_bunordr_d(label, s1, s2) jit_branchr_d((s1), (s2), FBUi((label)))
#define jit_bunordr_f(label, s1, s2) jit_branchr_f((s1), (s2), FBUi((label)))
#define jit_prepare_f(num) (_jitl.nextarg_put += (num))
#define jit_prepare_d(num) (_jitl.nextarg_put += 2 * (num))