<div dir="ltr">Yea, I've compiled Linus' code and ran on the RDC3308 itself.  I've not compiled the code in this environment.  I'm not sure if I should see cmov instructions in the binary or not.  I am using uname hack.  If I rebuilt gmp and coreutils would cmov be included?<div><br></div></div><div class="gmail_extra"><br><div class="gmail_quote">On Tue, May 17, 2016 at 2:11 PM, William Harrington <span dir="ltr"><<a href="mailto:kb0iic@berzerkula.org" target="_blank">kb0iic@berzerkula.org</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class="HOEnZb"><div class="h5">On Tue, May 17, 2016 15:32, Chris Fowler wrote:<br>
> I've just finished chapter 6 of Sysvinit 3.0.0.  My goal is to target an<br>
> i586 processor that lacks features of i686. such as cmov.<br>
><br>
> I think I may have made a mistake during the initial builds.<br>
><br>
> Maybe I have not, I just want to validate before I move on.  Host is<br>
>  Ubuntu 15.10 x86_64.<br>
> Target is a RDC3308 RISC, but it prefers to be x86.<br>
><br>
>  have no name!:/# objdump /tools/bin/ls -D | grep cmov<br>
>     180d: 0f 44 1e             cmove  (%esi),%ebx<br>
>     31af: da cc                 fcmove %st(4),%st<br>
>     4e18: 0f 4e 00             cmovle (%eax),%eax<br>
>     59e6: 0f 4f 00             cmovg  (%eax),%eax<br>
>     5ddc: 0f 4f 00             cmovg  (%eax),%eax<br>
>     a836: db c5                 fcmovnb %st(5),%st<br>
>     e50a: 0f 4c 2a             cmovl  (%edx),%ebp<br>
>    1120f: 0f 4e 32             cmovle (%edx),%esi<br>
>    12e19: 0f 48 00             cmovs  (%eax),%eax<br>
>    1376b: 0f 4e 32             cmovle (%edx),%esi<br>
>    14068: db cc                 fcmovne %st(4),%st<br>
>    1cd7d: 0f 43 26             cmovae (%esi),%esp<br>
>    1fadd: da db                 fcmovu %st(3),%st<br>
>     25ef: 0f 4a 03             cmovp  (%ebx),%eax<br>
>       c7: da cc                 fcmove %st(4),%st<br>
>       d0: da cc                 fcmove %st(4),%st<br>
>      305: db cf                 fcmovne %st(7),%st<br>
>      30d: db cf                 fcmovne %st(7),%st<br>
>     6fb7: da c5                 fcmovb %st(5),%st<br>
>     799a: db c4                 fcmovnb %st(4),%st<br>
>     7a27: db c4                 fcmovnb %st(4),%st<br>
>     7a68: db c2                 fcmovnb %st(2),%st<br>
>      244: db da                 fcmovnu %st(2),%st<br>
>      450: db dc                 fcmovnu %st(4),%st<br>
>      478: db dc                 fcmovnu %st(4),%st<br>
>      4a0: db dc                 fcmovnu %st(4),%st<br>
>      4c0: db dc                 fcmovnu %st(4),%st<br>
>     22c4: db c4                 fcmovnb %st(4),%st<br>
>     2434: db c4                 fcmovnb %st(4),%st<br>
> I have no name!:/#<br>
><br>
> Chris<br>
<br>
</div></div>Hello Chris,<br>
<br>
i586 historically did not have cmov. The major change between i586 and<br>
i686 (pentium pro and later) was cmov.<br>
<a href="https://en.wikipedia.org/wiki/X86_instruction_listings#Added_with_Pentium_Pro" rel="noreferrer" target="_blank">https://en.wikipedia.org/wiki/X86_instruction_listings#Added_with_Pentium_Pro</a><br>
<br>
If you use a target of i586-unknown-linux-gnu and a build cross-tools<br>
targeting i586 then you'll end up with i586. The notable change will be to<br>
make sure GMP builds for the target rather than detecting the host's cpu<br>
and building for it. There are some GEODE cpu's, like the GX1 that use the<br>
i586 machine type and include cmov. Check your cpu flags if unsure if your<br>
target CPU has cmov or not. I do not know if the current toolchain<br>
versions add cmov into the i586 architecture.<br>
<br>
Some more info about cmov, as well: <a href="http://yarchive.net/comp/linux/cmov.html" rel="noreferrer" target="_blank">http://yarchive.net/comp/linux/cmov.html</a><br>
<br>
Sincerely,<br>
<br>
William Harrington<br>
<br>
_______________________________________________<br>
Clfs-support mailing list<br>
<a href="mailto:Clfs-support@lists.clfs.org">Clfs-support@lists.clfs.org</a><br>
<a href="http://lists.clfs.org/listinfo.cgi/clfs-support-clfs.org" rel="noreferrer" target="_blank">http://lists.clfs.org/listinfo.cgi/clfs-support-clfs.org</a><br>
</blockquote></div><br></div>