Index: src/trusted/validator/x86/decoder/generator/ncdecode_sse.c |
=================================================================== |
--- src/trusted/validator/x86/decoder/generator/ncdecode_sse.c (revision 9237) |
+++ src/trusted/validator/x86/decoder/generator/ncdecode_sse.c (working copy) |
@@ -329,8 +329,17 @@ |
NaClDefine(" f30f7f: Movdqu $Wdq, $Vdq", NACLi_SSE2, st, Move); |
NaClDefIter(" f20fb8+@i: Invalid", 0, 7, NACLi_INVALID, st, Other); |
NaClDefine(" f30fb8: Popcnt $Gv, $Ev", NACLi_POPCNT, st, Move); |
- NaClDefIter(" f30fb9+@i: Invalid", 0, 3, NACLi_INVALID, st, Other); |
- NaClDefine(" f30fbd: Lzcnt $Gv, $Ev", NACLi_LZCNT, st, Move); |
+ NaClDefIter(" f30fb9+@i: Invalid", 0, 2, NACLi_INVALID, st, Other); |
+ /* tzcnt is treated as a bsf on machines that don't have tzcnt. |
+ * Hence, even though its conditional on NACLi_LZCNT, we act |
+ * like it can be used on all processors. |
+ */ |
+ NaClDefine(" f30fbc: Tzcnt $Gv, $Ev", NACLi_386, st, Move); |
Karl
2012/07/24 21:28:18
Made tzcnt and lzcnt work on all processors.
|
+ /* lzcnt is treated as a bsr on machines that don't have lzcnt. |
+ * Hence, even though its conditional on NACLi_LZCNT, we act |
+ * like it can be used on all processors. |
+ */ |
+ NaClDefine(" f30fbd: Lzcnt $Gv, $Ev", NACLi_386, st, Move); |
NaClDefIter(" f30fbe+@i: Invalid", 0, 1, NACLi_INVALID, st, Other); |
NaClDefine(" 0fc2: Cmpps $Vps, $Wps, $Ib", |
NACLi_SSE, st, Nary); |