1 |
On Monday, March 23, 2015 6:18:46 PM Mike Gilbert wrote: |
2 |
> On Mon, Mar 23, 2015 at 9:51 PM, Walter Dnes <waltdnes@××××××××.org> wrote: |
3 |
> > On Sun, Mar 22, 2015 at 09:25:53PM -0400, Fernando Rodriguez wrote |
4 |
> > |
5 |
> >> I guess gcc devs are careful when using the model numbers (Intel |
6 |
> >> lists 3 for Atoms, gcc uses only two so that may account for the |
7 |
> >> models I mentioned) but the chance of error is there. The -mno-xxx |
8 |
> >> flags would safeguard against it. |
9 |
> > |
10 |
> > I have one of the earliest Atom chips. Some people have a hard time |
11 |
> > believing this, but it's a 32-bit-only chip; a couple of lines from |
12 |
> > /proc/cpuinfo |
13 |
> > |
14 |
> > model name : Intel(R) Atom(TM) CPU Z520 @ 1.33GHz |
15 |
> > address sizes : 32 bits physical, 32 bits virtual |
16 |
> > |
17 |
> > Intel gives the CPU's specs at... |
18 |
> > |
19 |
> > http://ark.intel.com/products/35466/Intel-Atom-Processor-Z520-512K-Cache-1_33-GHz-533-MHz-FSB |
20 |
> > |
21 |
> > ...where it specifically says... |
22 |
> > |
23 |
> > Intel 64 # No |
24 |
> > |
25 |
> > I want to make absolutely certain that "illegal instructions" are not |
26 |
> > compiled for it. |
27 |
> |
28 |
> You will probably need to add -m32 to CFLAGS to avoid building 64-bit |
29 |
> objects on the 64-bit machine. |
30 |
> |
31 |
|
32 |
Your CPU is an example of what I'm saying, not just because it doesn't have 64 |
33 |
bit extensions but because it doesn't have MMX (at least according to the |
34 |
specs) and according to the GCC manual -march=atom means: "Intel Atom CPU with |
35 |
64-bit extensions, MOVBE, MMX, SSE, SSE2, SSE3 and SSSE3 instruction set |
36 |
support." So I guess it's more common than I thought. |
37 |
|
38 |
So you may also want to add -mno-mmx to be sure. GCC does check for mmx but it |
39 |
doesn't not use it on the output (probably a bug?). |
40 |
|
41 |
|
42 |
-- |
43 |
Fernando Rodriguez |