kimhak168 wrote:

SllfjhvmSSllf

On Mon, Jun 30, 2025, 5:31 AM sivadeilra ***@***.***> wrote:

> ***@***.**** commented on this pull request.
> ------------------------------
>
> In llvm/lib/Target/X86/X86MCInstLower.cpp
> <https://github.com/llvm/llvm-project/pull/144745#discussion_r2173977583>:
>
> > +// To achieve this, ICO also inserts NOPs after the CALL instruction. If 
> > the
> +// end of the CALL is aligned with an EH state transition, we *also* insert
> +// a single-byte NOP.  **Both forms of NOPs must be preserved.**  They cannot
> +// be combined into a single larger NOP; nor can the second NOP be removed.
> +//
> +// This is necessary because, if ICO is active and the call site is modified
> +// by the loader, the loader will end up overwriting the NOPs that were 
> inserted
> +// for ICO. That means that those NOPs cannot be used for the correct
> +// termination of the exception handling region (the IP2State transition),
> +// so we still need an additional NOP instruction.  The NOPs cannot be 
> combined
> +// into a longer NOP (which is ordinarily desirable) because then ICO would
> +// split one instruction, producing a malformed instruction after the ICO 
> call.
> +bool X86AsmPrinter::needsNopAfterCallForWindowsEH(const MachineInstr *MI) {
> +  // We only need to insert NOPs after CALLs when targeting Windows on AMD64.
> +  // Since this code is already restricted to X86, we just test for Win64.
> +  if (!this->Subtarget->isTargetWin64()) {
>
> Ok. What should that look like? I looked at a few variants and it wasn't
> obvious how they were different from using the subtarget.
>
> —
> Reply to this email directly, view it on GitHub
> <https://github.com/llvm/llvm-project/pull/144745#discussion_r2173977583>,
> or unsubscribe
> <https://github.com/notifications/unsubscribe-auth/BMTQUFSDA3KPV7DATAF5SML3GBSM5AVCNFSM6AAAAAB7TTSKNKVHI2DSMVQWIX3LMV43YUDVNRWFEZLROVSXG5CSMV3GSZLXHMZDSNRZGU2DMMJZGQ>
> .
> You are receiving this because you are subscribed to this thread.Message
> ID: ***@***.***>
>


https://github.com/llvm/llvm-project/pull/144745
_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to