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:
parent
688e75a092
commit
9564132c94
4 changed files with 77 additions and 33 deletions
|
@ -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))
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue