From 5a2df005c5091b49f3596b97bb47b209aaf7231d Mon Sep 17 00:00:00 2001 From: pcpa Date: Thu, 12 Sep 2013 00:24:19 -0300 Subject: [PATCH] Correct wrong example and mt unsafe code in the arm backend. * doc/body.texi: Correct reversed arguments in example of usage in a (possibly) multi threaded, multiple jit_state_t environments. * include/lightning/jit_arm.h, include/lightning/jit_private.h, lib/jit_arm-cpu.c, lib/jit_arm.c: Make a previously, non documented, global state private to the related jit_state_t generating code. --- ChangeLog | 11 +++++++++++ doc/body.texi | 2 +- include/lightning/jit_arm.h | 5 ----- include/lightning/jit_private.h | 2 ++ lib/jit_arm-cpu.c | 2 +- lib/jit_arm.c | 1 - 6 files changed, 15 insertions(+), 8 deletions(-) diff --git a/ChangeLog b/ChangeLog index c780db018..81190117b 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,14 @@ +2013-10-10 Paulo Andrade + + * doc/body.texi: Correct reversed arguments in example of + usage in a (possibly) multi threaded, multiple jit_state_t + environments. + + * include/lightning/jit_arm.h, include/lightning/jit_private.h, + lib/jit_arm-cpu.c, lib/jit_arm.c: Make a previously, non + documented, global state private to the related jit_state_t + generating code. + 2013-09-10 Paulo Andrade * check/self.c, check/self.ok: New files implementing simple diff --git a/doc/body.texi b/doc/body.texi index f647111fe..91ce9d744 100644 --- a/doc/body.texi +++ b/doc/body.texi @@ -1183,7 +1183,7 @@ time, it is required to used code similar to: @example struct jit_state lightning; - #define _jit lightning + #define lightning _jit @end example This will cause the symbol defined to @code{_jit} to be passed as diff --git a/include/lightning/jit_arm.h b/include/lightning/jit_arm.h index f3f7d19fb..d217a4bc6 100644 --- a/include/lightning/jit_arm.h +++ b/include/lightning/jit_arm.h @@ -117,11 +117,6 @@ typedef struct { jit_uint32_t abi : 2; } jit_cpu_t; -typedef struct { - /* prevent using thumb instructions that set flags? */ - jit_uint32_t no_set_flags : 1; -} jit_flags_t; - typedef jit_int64_t jit_regset_t; /* diff --git a/include/lightning/jit_private.h b/include/lightning/jit_private.h index 511a04a89..90d340a96 100644 --- a/include/lightning/jit_private.h +++ b/include/lightning/jit_private.h @@ -396,6 +396,8 @@ struct jit_compiler { jit_uint8_t *base; } note; #if __arm__ + /* prevent using thumb instructions that set flags? */ + jit_uint32_t no_set_flags : 1; # if DISASSEMBLER struct { jit_data_info_t *ptr; diff --git a/lib/jit_arm-cpu.c b/lib/jit_arm-cpu.c index 71d178d98..c91ac6ede 100644 --- a/lib/jit_arm-cpu.c +++ b/lib/jit_arm-cpu.c @@ -29,7 +29,7 @@ # define _u16(v) ((v) & 0xffff) # define _u24(v) ((v) & 0xffffff) # define jit_thumb_p() jit_cpu.thumb -# define jit_no_set_flags() jit_flags.no_set_flags +# define jit_no_set_flags() _jitc->no_set_flags # define jit_armv5_p() (jit_cpu.version >= 5) # define jit_armv5e_p() (jit_cpu.version >= 5 && jit_cpu.extend) # define jit_armv6_p() (jit_cpu.version >= 6) diff --git a/lib/jit_arm.c b/lib/jit_arm.c index 1cc444fa8..0f291b15c 100644 --- a/lib/jit_arm.c +++ b/lib/jit_arm.c @@ -77,7 +77,6 @@ extern void __clear_cache(void *, void *); * Initialization */ jit_cpu_t jit_cpu; -jit_flags_t jit_flags; jit_register_t _rvs[] = { { rc(gpr) | 0x0c, "ip" }, { rc(sav) | rc(gpr) | 0x04, "r4" },