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