Matthew Dillon said:
> :There're a couple of places in swtch.s where code looks like this,
> :
> :#ifdef VM86
> :        btrl    %esi, _private_tss
> :        je      3f
> :     ...
> :3:
> :#endif
> :
> :The conditional jump statement doesn't seem right, according to manual,
> :btrl instruction modifies CF flag but not Z, so the jump should be jae/jb
> :instead of je/jne. Could anyone confirm this?
> :
> :-lq
> 
>     btrl only effects the Carry.  The VM86 code looks wrong to me, though
>     there is an outside chance that it is doing a conditional jump based
>     on something that occured prior to the btrl.
> 
Even though you are correct in practice, the Intel Architecture Software
developer's manual #2 says that the ZF is undefined, not that it is
unchanged.  In fact, the above code sequence is incorrect "by the book."

-- 
John                  | Never try to teach a pig to sing,
dy...@iquest.net      | it makes one look stupid
jdy...@nc.com         | and it irritates the pig.


To Unsubscribe: send mail to majord...@freebsd.org
with "unsubscribe freebsd-current" in the body of the message

Reply via email to