[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 (Macintosh/20061025)

Ludovic Courtès wrote:

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:

      Removed C99/C++ comments from `asm-i386.h'.


      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))


reply via email to

[Prev in Thread] Current Thread [Next in Thread]