I'm trying to make some code work with Masm v7. So I look at the dissassembly and see:



004001D7 60 pushad
004001D8 2E 72 64 hnt jb 0040023F
004001DB 61 popad


"hnt jb"?!?
2E is the segement overide prefix.
72 is jb.

gahhh, just found another:


004001D7 60 pushad
004001D8 2E 72 64 hnt jb 0040023F
004001DB 61 popad
Posted on 2002-05-26 09:44:05 by ThoughtCriminal
Look in the P4 manuals. It's a conditional branch "hint" to help
the processor to do more optimal branch prediction.
Posted on 2002-05-26 10:01:13 by f0dder
It looks like sloppy work by the assembler. The branch could jump out of the scope of the push/pop, where you would need the pop somewhere else as well...

But there is hardly enough code shown to be conculsive in this opinion...

:NaN:
Posted on 2002-05-26 10:20:30 by NaN
Funny seeing that on my Athlon.
Posted on 2002-05-26 12:27:44 by ThoughtCriminal
Since the hint is created with a segment override, it has no effect
on processors that don't support it. Pretty smart, huh? :)
Posted on 2002-05-26 17:21:12 by f0dder