You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Sorry for potentially very dumb and novice questions :) but could someone please give me a hint on:
1 Why do we need cmp instruction here (there is no any conditional jump after the cmp)
2 What is 7FFE7B410028h and why we load in r11 here
3 Isn't it too expensive to have cmp per interface call (could cml in that case cause branch prediction miss?)
Thank you a lot!
The text was updated successfully, but these errors were encountered:
Why do we need cmp instruction here (there is no any conditional jump after the cmp)
To trigger a NullReferenceException at he point of the call when this is null.
What is 7FFE7B410028h and why we load in r11 here
The address of an "indirection cell" that points to a stub that resolves and calls the interface implementation method. Unfortunately resolving interface methods is a relatively complicated operation that cannot be done "inline".
Isn't it too expensive to have cmp per interface call (could cml in that case cause branch prediction miss?)
It's a compare instruction, not a conditional branch instruction, so it has nothing to do with branch prediction. And it's very cheap compared to the actual interface call cost.
Hi Guys!
Have a very simple app, that call interface method like this.
That generates the following ASM for 2.2 (for 3.0 there is lea rsp,[rbp] instead of add rsp,30h)
Sorry for potentially very dumb and novice questions :) but could someone please give me a hint on:
1 Why do we need cmp instruction here (there is no any conditional jump after the cmp)
2 What is 7FFE7B410028h and why we load in r11 here
3 Isn't it too expensive to have cmp per interface call (could cml in that case cause branch prediction miss?)
Thank you a lot!
The text was updated successfully, but these errors were encountered: