I agree that mov instead of xchg is harmless since %ebx is overwrtten by the very next instruction. I am more concerned about dropping the input constraints in favor of "+a" and "+c". For a *correct* compiler that should be equivalent, but the reason we are doing this is because some compilers are buggy. If all compilers were correct then "=r" (or maybe "=&r"?) should have worked.
So, I will see if I can retest the newer version on at least the compilers that behaved oddly previously. -Paul On Tue, Jul 28, 2015 at 7:23 AM, Samuel Thibault <samuel.thiba...@inria.fr> wrote: > Brice Goglin, le Tue 28 Jul 2015 16:13:49 +0200, a écrit : > > and your commit is slightly different: (s/xchg/mov/ and removed last > line). > > xchg is spurious here, mov is enough. I didn't remove the last line, I > just kept the original source, which uses +a instead of =a and a. > > > FWIW, in master we don't have multiple inlining anymore (there's a > > wrapper function calling this inline asm). > > You mean the cpuid_or_from_dump function? > > Samuel > _______________________________________________ > hwloc-devel mailing list > hwloc-de...@open-mpi.org > Subscription: http://www.open-mpi.org/mailman/listinfo.cgi/hwloc-devel > Link to this post: > http://www.open-mpi.org/community/lists/hwloc-devel/2015/07/4518.php > -- Paul H. Hargrove phhargr...@lbl.gov Computer Languages & Systems Software (CLaSS) Group Computer Science Department Tel: +1-510-495-2352 Lawrence Berkeley National Laboratory Fax: +1-510-486-6900