On Tue, Jul 10, 2018 at 10:03:33AM -0700, Olof Johansson wrote: > Hi Russell, > > @@ -663,13 +679,27 @@ static inline void emit_a32_mov_r(const s8 dst, const > > s8 src, > > static inline void emit_a32_mov_r64(const bool is64, const s8 dst[], > > const s8 src[], > > struct jit_ctx *ctx) { > > - emit_a32_mov_r(dst_lo, src_lo, ctx); > > - if (is64) { > > + if (!is64) { > > + emit_a32_mov_r(dst_lo, src_lo, ctx); > > + /* Zero out high 4 bytes */ > > + emit_a32_mov_i(dst_hi, 0, ctx); > > + } else if (__LINUX_ARM_ARCH__ < 6 && > > + ctx->cpu_architecture < CPU_ARCH_ARMv5) { > > /* complete 8 byte move */ > > + emit_a32_mov_r(dst_lo, src_lo, ctx); > > emit_a32_mov_r(dst_hi, src_hi, ctx); > > > Tiny nit: Looks like you compare for >= ARMv5TE above and <ARMv5 here.
Good catch, I'll fix it, and it gives me some satisfaction that someone is reviewing this JIT code closely! IMHO, JITs need a lot of scrutiny. > I'm not aware of any vanilla v5 implementations (all I can find are > v5TE or <=v4T), so it doesn't seem like something actually causing > problems. Mostly pointing it out for consistency's sake. They're rare - I think the only one is an ARM1020 (ARMv5T) as opposed to the ARM1020E (ARMv5TE). Whether any are in the wild or not is another matter. -- RMK's Patch system: http://www.armlinux.org.uk/developer/patches/ FTTC broadband for 0.8mile line in suburbia: sync at 13.8Mbps down 630kbps up According to speedtest.net: 13Mbps down 490kbps up