1 |
Mark Knecht posted on Tue, 10 Mar 2015 17:40:33 -0700 as excerpted: |
2 |
|
3 |
> On Tue, Mar 10, 2015 at 5:27 PM, Frank Peters <frank.peters@×××××××.net> |
4 |
> wrote: |
5 |
>> On Tue, 10 Mar 2015 17:17:11 -0700 Mark Knecht <markknecht@×××××.com> |
6 |
>> wrote: |
7 |
>> |
8 |
>> |
9 |
>>> I've had no problems, as best I can tell, with ffmpeg and these |
10 |
>>> settings. |
11 |
>>> |
12 |
>>> |
13 |
>> Well, if the use of the mmxext flag leads to instructions in the |
14 |
>> compiled code which the cpu does not have, then CRASH. |
15 |
>> |
16 |
>> But the SSE instruction sets supersede MMX (and mmxext) and so the |
17 |
>> mmxext flag is really unnecessary on Core i7 and many newer processors. |
18 |
>> (Ffmpeg may have reasons for still using MMX but I don't know.) |
19 |
>> |
20 |
>> Frank Peters |
21 |
> |
22 |
> True, but I don't think it's likely as the old mmxext flags (AMD only |
23 |
> possibly?) became a subset of SSE. That said, report the bug and copy us |
24 |
> on the report. I'd be interested in hearing what the developers say. |
25 |
|
26 |
AFAIK (and verified by wikipedia, see the links below), all amd64 aka |
27 |
x86_64 CPUs ship with mmx/mmxext/sse/sse2. It was part of the base amd64 |
28 |
spec, and as such, mmxext should be considered available on any amd64 |
29 |
based machine. |
30 |
|
31 |
More specifically, according to wikipedia, AMD's second generation 3DNow |
32 |
(called various things, there was apparently never an official name) was |
33 |
introduced in the first-gen Athlon CPUs. The combined 24 new |
34 |
instructions were segregated into 5 new 3DNow instructions and 19 new MMX |
35 |
instructions in tech manuals, and some pre-amd64 CPUs actually shipped |
36 |
with the 5 additional 3DNow instructions only, while customer-focused |
37 |
literature tended to blur the lines and refer to the 24 instructions |
38 |
combined as enhanced 3DNow technology. |
39 |
|
40 |
Meanwhile, the 19 new MMX instructions were a subset of Intel's SSE (v1) |
41 |
instruction set. This SSE subset of 19 instructions is apparently what |
42 |
mmxext actually refers to. Thus, anything with sse in the cpuflags by |
43 |
definition has mmxext as well. |
44 |
|
45 |
So you can actually verify your CPU mmxext safe using two different |
46 |
methods. (1) It's in the amd64/x86_64 baseline definition, so if your |
47 |
machine is amd64/X86_64, it's automatically mmxext. (2) SSE supersets |
48 |
mmxext, so if sse appears in the cpuflags, it's automatically mmxext as |
49 |
well. |
50 |
|
51 |
|
52 |
https://en.wikipedia.org/wiki/3DNow!#3DNow_extensions |
53 |
|
54 |
(In particular, see the 3DNow or MMX Extensions paragraph.) |
55 |
|
56 |
https://en.wikipedia.org/wiki/X86-64#Architectural_features |
57 |
|
58 |
(In particular, see the SSE Instructions paragraph.) |
59 |
|
60 |
|
61 |
-- |
62 |
Duncan - List replies preferred. No HTML msgs. |
63 |
"Every nonfree program has a lord, a master -- |
64 |
and if you use the program, he is your master." Richard Stallman |