[Fix] Fix a problem that use uc_reg_write to write fs, gs has no effets in x86 64-bit mode. (#984)

Backports commit a2493a0d4121b671fe9d16e41a9bdd3307b7b1ef from unicorn.
This commit is contained in:
nanoric 2019-02-28 16:52:46 -05:00 committed by Lioncash
parent 1d4bfd9aca
commit 9e8e5645fc
No known key found for this signature in database
GPG key ID: 4E3C3CC1031BA9C7

View file

@ -1197,10 +1197,10 @@ int x86_reg_write(struct uc_struct *uc, unsigned int *regs, void *const *vals, i
state->segs[R_ES].selector = *(uint16_t *)value;
break;
case UC_X86_REG_FS:
state->segs[R_FS].selector = *(uint16_t *)value;
cpu_x86_load_seg(state, R_FS, *(uint16_t *)value);
break;
case UC_X86_REG_GS:
state->segs[R_GS].selector = *(uint16_t *)value;
cpu_x86_load_seg(state, R_GS, *(uint16_t *)value);
break;
case UC_X86_REG_R8:
state->regs[8] = *(uint64_t *)value;