Chromium Code Reviews| Index: src/trusted/validator/x86/ncval_seg_sfi/generator/ncdecode_table.c |
| =================================================================== |
| --- src/trusted/validator/x86/ncval_seg_sfi/generator/ncdecode_table.c (revision 9237) |
| +++ src/trusted/validator/x86/ncval_seg_sfi/generator/ncdecode_table.c (working copy) |
| @@ -2168,12 +2168,19 @@ |
| EncodeOpF20F(0xbb, 0, IMM_NONE, NACLi_INVALID, "reserved"); |
| EncodeOp0F(0xbc, 1, IMM_NONE, NACLi_386, "bsf $Gv, $Ev"); |
| - EncodeOpF30F(0xbc, 0, IMM_NONE, NACLi_INVALID, "reserved"); |
| + /* 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. |
| + */ |
| + EncodeOpF30F(0xbc, 1, IMM_NONE, NACLi_386, "tzcnt $Gv, $Ev"); |
|
Karl
2012/07/24 21:15:45
Followed Roland's advice and made it work for all
|
| EncodeOpF20F(0xbc, 0, IMM_NONE, NACLi_INVALID, "reserved"); |
| EncodeOp0F(0xbd, 1, IMM_NONE, NACLi_386, "bsr $Gv, $Ev"); |
| - /* lzcnt is treated as a bsr on machines that don't have lzcnt */ |
| - EncodeOpF30F(0xbd, 1, IMM_NONE, NACLi_LZCNT, "lzcnt $Gv, $Ev"); |
| + /* 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. |
| + */ |
| + EncodeOpF30F(0xbd, 1, IMM_NONE, NACLi_386, "lzcnt $Gv, $Ev"); |
|
Karl
2012/07/24 21:15:45
Did the same for lzcnt.
|
| EncodeOpF20F(0xbd, 0, IMM_NONE, NACLi_INVALID, "reserved"); |
| EncodeOp0F(0xbe, 1, IMM_NONE, NACLi_386, "movsx $Gv, $Eb"); |