106 107 #define ARCH_FLAGS(develop, \ 108 product, \ 109 diagnostic, \ 110 experimental, \ 111 notproduct, \ 112 range, \ 113 constraint, \ 114 writeable) \ 115 \ 116 develop(bool, IEEEPrecision, true, \ 117 "Enables IEEE precision (for INTEL only)") \ 118 \ 119 product(bool, UseStoreImmI16, true, \ 120 "Use store immediate 16-bits value instruction on x86") \ 121 \ 122 product(intx, UseAVX, 3, \ 123 "Highest supported AVX instructions set on x86/x64") \ 124 range(0, 99) \ 125 \ 126 product(bool, UseCLMUL, false, \ 127 "Control whether CLMUL instructions can be used on x86/x64") \ 128 \ 129 diagnostic(bool, UseIncDec, true, \ 130 "Use INC, DEC instructions on x86") \ 131 \ 132 product(bool, UseNewLongLShift, false, \ 133 "Use optimized bitwise shift left") \ 134 \ 135 product(bool, UseAddressNop, false, \ 136 "Use '0F 1F [addr]' NOP instructions on x86 cpus") \ 137 \ 138 product(bool, UseXmmLoadAndClearUpper, true, \ 139 "Load low part of XMM register and clear upper part") \ 140 \ 141 product(bool, UseXmmRegToRegMoveAll, false, \ 142 "Copy all XMM register bits when moving value between registers") \ 143 \ 144 product(bool, UseXmmI2D, false, \ 145 "Use SSE2 CVTDQ2PD instruction to convert Integer to Double") \ | 106 107 #define ARCH_FLAGS(develop, \ 108 product, \ 109 diagnostic, \ 110 experimental, \ 111 notproduct, \ 112 range, \ 113 constraint, \ 114 writeable) \ 115 \ 116 develop(bool, IEEEPrecision, true, \ 117 "Enables IEEE precision (for INTEL only)") \ 118 \ 119 product(bool, UseStoreImmI16, true, \ 120 "Use store immediate 16-bits value instruction on x86") \ 121 \ 122 product(intx, UseAVX, 3, \ 123 "Highest supported AVX instructions set on x86/x64") \ 124 range(0, 99) \ 125 \ 126 product(intx, UseSSE, 99, \ 127 "Highest supported SSE instructions set on x86/x64") \ 128 range(0, 99) \ 129 \ 130 product(bool, UseCLMUL, false, \ 131 "Control whether CLMUL instructions can be used on x86/x64") \ 132 \ 133 diagnostic(bool, UseIncDec, true, \ 134 "Use INC, DEC instructions on x86") \ 135 \ 136 product(bool, UseNewLongLShift, false, \ 137 "Use optimized bitwise shift left") \ 138 \ 139 product(bool, UseAddressNop, false, \ 140 "Use '0F 1F [addr]' NOP instructions on x86 cpus") \ 141 \ 142 product(bool, UseXmmLoadAndClearUpper, true, \ 143 "Load low part of XMM register and clear upper part") \ 144 \ 145 product(bool, UseXmmRegToRegMoveAll, false, \ 146 "Copy all XMM register bits when moving value between registers") \ 147 \ 148 product(bool, UseXmmI2D, false, \ 149 "Use SSE2 CVTDQ2PD instruction to convert Integer to Double") \ |