Skip to content

Extra push/pop ebp in code gen #125433

@iSazonov

Description

@iSazonov

See SharpLab

public class C {
    private static bool _isC0Code(char wch)
        => wch < 0x20 && wch is not (char)0x18 and not (char)0x1a and not (char)0x1b;
}
C._isC0Code(Char)
    L0000: push ebp
    L0001: mov ebp, esp
    L0003: movzx eax, cx
    L0006: cmp eax, 0x20
    L0009: jge short L0020
    L000b: cmp eax, 0x18
    L000e: je short L0020
    L0010: cmp eax, 0x1a
    L0013: je short L0020
    L0015: cmp eax, 0x1b
    L0018: setne al
    L001b: movzx eax, al
    L001e: pop ebp
    L001f: ret
    L0020: xor eax, eax
    L0022: pop ebp
    L0023: ret

Metadata

Metadata

Labels

area-CodeGen-coreclrCLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMI

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions