Skip to content

Instantly share code, notes, and snippets.

@RobThree
Last active March 25, 2025 00:36
Show Gist options
  • Select an option

  • Save RobThree/c5fc34bc777d2f94e27b181db731e801 to your computer and use it in GitHub Desktop.

Select an option

Save RobThree/c5fc34bc777d2f94e27b181db731e801 to your computer and use it in GitHub Desktop.
public class C {
public static string SwitchExpression(int roleId)
=> roleId switch
{
1 => "A",
2 => "B",
3 => "C",
4 => "D",
5 => "E",
6 => "F",
7 => "G",
8 => "H",
9 => "I",
10 => "J",
11 => "K",
12 => "L",
13 => "M",
14 => "N",
15 => "O",
16 => "P",
17 => "Q",
18 => "R",
19 => "S",
20 => "T",
21 => "U",
22 => "V",
23 => "W",
24 => "X",
25 => "Y",
26 => "Z",
27 => "a",
28 => "b",
29 => "c",
30 => "d",
31 => "e",
32 => "f",
33 => "g",
34 => "h",
35 => "i",
36 => "j",
37 => "k",
38 => "l",
39 => "m",
40 => "n",
41 => "o",
42 => "p",
43 => "q",
44 => "r",
45 => "s",
46 => "t",
47 => "u",
48 => "v",
49 => "w",
50 => "x",
51 => "y",
52 => "z",
53 => "0",
54 => "1",
55 => "2",
56 => "3",
57 => "4",
58 => "5",
59 => "6",
60 => "7",
61 => "8",
62 => "9",
_ => "Unknown"
};
}
; Core CLR 9.0.124.61010 on x64
C..ctor()
L0000: ret
C.SwitchExpression(Int32)
L0000: dec ecx
L0002: cmp ecx, 0x3d
L0005: ja short L001f
L0007: mov eax, ecx
L0009: lea rcx, [0x7ff8f19e04b8]
L0010: mov ecx, [rcx+rax*4]
L0013: lea rdx, [L0000]
L001a: add rcx, rdx
L001d: jmp rcx
L001f: mov rax, 0x2a7eccb3f58
L0029: mov rax, [rax]
L002c: jmp L0470
L0031: mov rax, 0x2a4a54bc5b8
L003b: mov rax, [rax]
L003e: jmp L0470
L0043: mov rax, 0x2a4a54bc568
L004d: mov rax, [rax]
L0050: jmp L0470
L0055: mov rax, 0x2a4a54bc5a8
L005f: mov rax, [rax]
L0062: jmp L0470
L0067: mov rax, 0x2a4a54bc598
L0071: mov rax, [rax]
L0074: jmp L0470
L0079: mov rax, 0x2a4a54bc588
L0083: mov rax, [rax]
L0086: jmp L0470
L008b: mov rax, 0x2a4a54bb938
L0095: mov rax, [rax]
L0098: jmp L0470
L009d: mov rax, 0x2a4a54bb958
L00a7: mov rax, [rax]
L00aa: jmp L0470
L00af: mov rax, 0x2a4a54bb948
L00b9: mov rax, [rax]
L00bc: jmp L0470
L00c1: mov rax, 0x2a4a536e028
L00cb: mov rax, [rax]
L00ce: jmp L0470
L00d3: mov rax, 0x2a4a536e018
L00dd: mov rax, [rax]
L00e0: jmp L0470
L00e5: mov rax, 0x2a7ec5a5328
L00ef: mov rax, [rax]
L00f2: jmp L0470
L00f7: mov rax, 0x2a7f2257358
L0101: mov rax, [rax]
L0104: jmp L0470
L0109: mov rax, 0x2a4a536c258
L0113: mov rax, [rax]
L0116: jmp L0470
L011b: mov rax, 0x2a7f233f928
L0125: mov rax, [rax]
L0128: jmp L0470
L012d: mov rax, 0x2a7f45f3828
L0137: mov rax, [rax]
L013a: jmp L0470
L013f: mov rax, 0x2a4a5b437a8
L0149: mov rax, [rax]
L014c: jmp L0470
L0151: mov rax, 0x2a7eccb50a8
L015b: mov rax, [rax]
L015e: jmp L0470
L0163: mov rax, 0x2a4a54bcf88
L016d: mov rax, [rax]
L0170: jmp L0470
L0175: mov rax, 0x2a7eccb5168
L017f: mov rax, [rax]
L0182: jmp L0470
L0187: mov rax, 0x2a7f233f938
L0191: mov rax, [rax]
L0194: jmp L0470
L0199: mov rax, 0x2a4a5b164c8
L01a3: mov rax, [rax]
L01a6: jmp L0470
L01ab: mov rax, 0x2a7eccb5218
L01b5: mov rax, [rax]
L01b8: jmp L0470
L01bd: mov rax, 0x2a7f2251598
L01c7: mov rax, [rax]
L01ca: jmp L0470
L01cf: mov rax, 0x2a4a536ce98
L01d9: mov rax, [rax]
L01dc: jmp L0470
L01e1: mov rax, 0x2a7f0e367b8
L01eb: mov rax, [rax]
L01ee: jmp L0470
L01f3: mov rax, 0x2a7f8498f28
L01fd: mov rax, [rax]
L0200: jmp L0470
L0205: mov rax, 0x2a7f8498f58
L020f: mov rax, [rax]
L0212: jmp L0470
L0217: mov rax, 0x2a7f0e36748
L0221: mov rax, [rax]
L0224: jmp L0470
L0229: mov rax, 0x2a7f22572e8
L0233: mov rax, [rax]
L0236: jmp L0470
L023b: mov rax, 0x2a4a536cb58
L0245: mov rax, [rax]
L0248: jmp L0470
L024d: mov rax, 0x2a4a5b46308
L0257: mov rax, [rax]
L025a: jmp L0470
L025f: mov rax, 0x2a4a59f9228
L0269: mov rax, [rax]
L026c: jmp L0470
L0271: mov rax, 0x2a4a536e1e8
L027b: mov rax, [rax]
L027e: jmp L0470
L0283: mov rax, 0x2a4a5b16f48
L028d: mov rax, [rax]
L0290: jmp L0470
L0295: mov rax, 0x2a4a54bcff8
L029f: mov rax, [rax]
L02a2: jmp L0470
L02a7: mov rax, 0x2a7f0e36718
L02b1: mov rax, [rax]
L02b4: jmp L0470
L02b9: mov rax, 0x2a7eccb72b8
L02c3: mov rax, [rax]
L02c6: jmp L0470
L02cb: mov rax, 0x2a7f2253d98
L02d5: mov rax, [rax]
L02d8: jmp L0470
L02dd: mov rax, 0x2a4a59fb0f8
L02e7: mov rax, [rax]
L02ea: jmp L0470
L02ef: mov rax, 0x2a4a607f4c8
L02f9: mov rax, [rax]
L02fc: jmp L0470
L0301: mov rax, 0x2a4a607f4d0
L030b: mov rax, [rax]
L030e: jmp L0470
L0313: mov rax, 0x2a7ec5a40f8
L031d: mov rax, [rax]
L0320: jmp L0470
L0325: mov rax, 0x2a7eccb7428
L032f: mov rax, [rax]
L0332: jmp L0470
L0337: mov rax, 0x2a7eccb5798
L0341: mov rax, [rax]
L0344: jmp L0470
L0349: mov rax, 0x2a4a5b148d8
L0353: mov rax, [rax]
L0356: jmp L0470
L035b: mov rax, 0x2a4a607f4d8
L0365: mov rax, [rax]
L0368: jmp L0470
L036d: mov rax, 0x2a7eccb56f8
L0377: mov rax, [rax]
L037a: jmp L0470
L037f: mov rax, 0x2a4a5b17728
L0389: mov rax, [rax]
L038c: jmp L0470
L0391: mov rax, 0x2a7eccb66e8
L039b: mov rax, [rax]
L039e: jmp L0470
L03a3: mov rax, 0x2a7eccb6698
L03ad: mov rax, [rax]
L03b0: jmp L0470
L03b5: mov rax, 0x2a7eccb60a8
L03bf: mov rax, [rax]
L03c2: jmp L0470
L03c7: mov rax, 0x2a7f2257318
L03d1: mov rax, [rax]
L03d4: jmp L0470
L03d9: mov rax, 0x2a4a607f4e0
L03e3: mov rax, [rax]
L03e6: jmp L0470
L03eb: mov rax, 0x2a7f0e36d88
L03f5: mov rax, [rax]
L03f8: jmp short L0470
L03fa: mov rax, 0x2a7ec5a1be8
L0404: mov rax, [rax]
L0407: jmp short L0470
L0409: mov rax, 0x2a7ec688e58
L0413: mov rax, [rax]
L0416: jmp short L0470
L0418: mov rax, 0x2a4a5b44148
L0422: mov rax, [rax]
L0425: jmp short L0470
L0427: mov rax, 0x2a7ec5a5938
L0431: mov rax, [rax]
L0434: jmp short L0470
L0436: mov rax, 0x2a7ec5a1c08
L0440: mov rax, [rax]
L0443: jmp short L0470
L0445: mov rax, 0x2a7eccb7768
L044f: mov rax, [rax]
L0452: jmp short L0470
L0454: mov rax, 0x2a4a607f4a8
L045e: mov rax, [rax]
L0461: jmp short L0470
L0463: mov rax, 0x2a7ec6888e8
L046d: mov rax, [rax]
L0470: ret
{
"version": 1,
"target": "JIT ASM",
"mode": "Release",
"branch": "core-x64"
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment