为什么Node.js 0.12.0版本中的V8需要SSE2 CPU指令?

尝试将Node.js从0.10.x升级到0.12.0。 首先注意到的是,我得到一个错误,指出我的CPU不支持SSE2指令(实际上他们不是)。

试图从源代码编译Node.js,但由于相同的原因失败。 在deps/v8/src/ia32/assembler-ia32.cc有一行说明

 CHECK(cpu.has_sse2()); // SSE2 support is mandatory. 

我想知道是否有办法摆脱Node.js 0.10.x中不需要的SSE2依赖。 只是注释掉这条线没有帮助,它会在制作过程中抛出一个Illegal instruction错误。

从本演示的幻灯片14: IA上的Node.js的V8引擎:JavaScript-JITTED x86机器代码映射分析支持和X87夸克处理器启用

你需要从源代码编译。

做这个:

 ./configure –dest-cpu=ia32 

并将此行添加到config.gypi文件中的选项中:

 'v8_target_arch': 'x87', 

运行make

基本上这个CPU有V8的端口,它是用旧的奔腾(i586)的指令集。

它适用于Node v5.11.0和CPU AMD Geode LX800 。