[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Lightning] Re: release gets closer...
From: |
Paolo Bonzini |
Subject: |
Re: [Lightning] Re: release gets closer... |
Date: |
Thu, 23 Nov 2006 09:11:55 +0100 |
User-agent: |
Thunderbird 1.5.0.8 (Macintosh/20061025) |
Ludovic Courtès wrote:
Hi,
address@hidden (Ludovic Courtès) writes:
Indeed, you even made a major overhaul on the i386 side.
I'm wondering whether it was the right moment for this. ;-)
Well, it was the only way to gain SSE macros I need for x86-64 floating
point. :-/
Patches 42-43 in my branch fix a couple of things:
patch-43
Removed C99/C++ comments from `asm-i386.h'.
Ok.
patch-42
Added missing casts-to-integer in `_jit_B' and `_jit_W'.
The latter yielded compilation errors, as in the following example:
jit_bnei_i (jit_forward (), JIT_R2, NULL);
Here, the last argument is not an integer, hence an "invalid operands to
binary &" error (on IA32).
Because you want a bnei_p there. This is the right patch for this bug:
--- orig/lightning/core-common.h
+++ mod/lightning/core-common.h
@@ -396,30 +396,30 @@ typedef union jit_code {
#define jit_bmsi_ul(label, rs, is) jit_bmsi_l((label), (rs), (is))
#define jit_ltr_p(d, s1, s2) jit_ltr_ul((d), (s1), (s2))
-#define jit_lti_p(d, rs, is) jit_lti_ul((d), (rs), (is))
+#define jit_lti_p(d, rs, is) jit_lti_ul((d), (rs), (long)(is))
#define jit_ler_p(d, s1, s2) jit_ler_ul((d), (s1), (s2))
-#define jit_lei_p(d, rs, is) jit_lei_ul((d), (rs), (is))
+#define jit_lei_p(d, rs, is) jit_lei_ul((d), (rs), (long)(is))
#define jit_gtr_p(d, s1, s2) jit_gtr_ul((d), (s1), (s2))
-#define jit_gti_p(d, rs, is) jit_gti_ul((d), (rs), (is))
+#define jit_gti_p(d, rs, is) jit_gti_ul((d), (rs), (long)(is))
#define jit_ger_p(d, s1, s2) jit_ger_ul((d), (s1), (s2))
-#define jit_gei_p(d, rs, is) jit_gei_ul((d), (rs), (is))
+#define jit_gei_p(d, rs, is) jit_gei_ul((d), (rs), (long)(is))
#define jit_eqr_p(d, s1, s2) jit_eqr_ul((d), (s1), (s2))
-#define jit_eqi_p(d, rs, is) jit_eqi_ul((d), (rs), (is))
+#define jit_eqi_p(d, rs, is) jit_eqi_ul((d), (rs), (long)(is))
#define jit_ner_p(d, s1, s2) jit_ner_ul((d), (s1), (s2))
-#define jit_nei_p(d, rs, is) jit_nei_ul((d), (rs), (is))
+#define jit_nei_p(d, rs, is) jit_nei_ul((d), (rs), (long)(is))
#define jit_bltr_p(label, s1, s2) jit_bltr_ul((label), (s1), (s2))
-#define jit_blti_p(label, rs, is) jit_blti_ul((label), (rs), (is))
+#define jit_blti_p(label, rs, is) jit_blti_ul((label), (rs),
(long)(is))
#define jit_bler_p(label, s1, s2) jit_bler_ul((label), (s1), (s2))
-#define jit_blei_p(label, rs, is) jit_blei_ul((label), (rs), (is))
+#define jit_blei_p(label, rs, is) jit_blei_ul((label), (rs),
(long)(is))
#define jit_bgtr_p(label, s1, s2) jit_bgtr_ul((label), (s1), (s2))
-#define jit_bgti_p(label, rs, is) jit_bgti_ul((label), (rs), (is))
+#define jit_bgti_p(label, rs, is) jit_bgti_ul((label), (rs),
(long)(is))
#define jit_bger_p(label, s1, s2) jit_bger_ul((label), (s1), (s2))
-#define jit_bgei_p(label, rs, is) jit_bgei_ul((label), (rs), (is))
+#define jit_bgei_p(label, rs, is) jit_bgei_ul((label), (rs),
(long)(is))
#define jit_beqr_p(label, s1, s2) jit_beqr_ul((label), (s1), (s2))
-#define jit_beqi_p(label, rs, is) jit_beqi_ul((label), (rs), (is))
+#define jit_beqi_p(label, rs, is) jit_beqi_ul((label), (rs),
(long)(is))
#define jit_bner_p(label, s1, s2) jit_bner_ul((label), (s1), (s2))
-#define jit_bnei_p(label, rs, is) jit_bnei_ul((label), (rs), (is))
+#define jit_bnei_p(label, rs, is) jit_bnei_ul((label), (rs),
(long)(is))
#define jit_retval_ui(rd) jit_retval_i((rd))
#define jit_retval_uc(rd) jit_retval_i((rd))
Paolo