==> /tmp/pcpu_demo.before.amd64.clang.disas <== ./usr/src/freebsd-branches/main-push/amd64.amd64/sys/GENERIC/pcpu_demo.o: file format elf64-x86-64 Disassembly of section .text: 0000000000000000 : 0: 55 pushq %rbp 1: 48 89 e5 movq %rsp, %rbp 4: 65 48 8b 04 25 80 01 00 00 movq %gs:0x180, %rax d: 5d popq %rbp e: c3 retq f: 90 nop 0000000000000010 : 10: 55 pushq %rbp 11: 48 89 e5 movq %rsp, %rbp 14: 65 8b 04 25 3c 00 00 00 movl %gs:0x3c, %eax 1c: 5d popq %rbp 1d: c3 retq 1e: 66 90 nop 0000000000000020 : 20: 55 pushq %rbp 21: 48 89 e5 movq %rsp, %rbp 24: 65 01 3c 25 3c 00 00 00 addl %edi, %gs:0x3c 2c: 5d popq %rbp 2d: c3 retq 2e: 66 90 nop 0000000000000030 : 30: 55 pushq %rbp 31: 48 89 e5 movq %rsp, %rbp 34: 65 89 3c 25 3c 00 00 00 movl %edi, %gs:0x3c 3c: 5d popq %rbp 3d: c3 retq 3e: 66 90 nop 0000000000000040 : 40: 55 pushq %rbp 41: 48 89 e5 movq %rsp, %rbp 44: 65 48 8b 04 25 80 01 00 00 movq %gs:0x180, %rax 4d: 48 83 c0 3c addq $0x3c, %rax 51: 5d popq %rbp 52: c3 retq 53: 66 66 66 66 2e 0f 1f 84 00 00 00 00 00 nopw %cs:(%rax,%rax) 0000000000000060 : 60: 55 pushq %rbp 61: 48 89 e5 movq %rsp, %rbp 64: 65 48 8b 04 25 80 01 00 00 movq %gs:0x180, %rax 6d: 48 83 c0 3c addq $0x3c, %rax 71: 8b 00 movl (%rax), %eax 73: 5d popq %rbp 74: c3 retq 75: 66 66 2e 0f 1f 84 00 00 00 00 00 nopw %cs:(%rax,%rax) 0000000000000080 : 80: 55 pushq %rbp 81: 48 89 e5 movq %rsp, %rbp 84: 65 48 8b 04 25 80 01 00 00 movq %gs:0x180, %rax 8d: 48 83 c0 3c addq $0x3c, %rax 91: 89 38 movl %edi, (%rax) 93: 5d popq %rbp 94: c3 retq 95: 66 66 2e 0f 1f 84 00 00 00 00 00 nopw %cs:(%rax,%rax) 00000000000000a0 : a0: 55 pushq %rbp a1: 48 89 e5 movq %rsp, %rbp a4: 65 48 8b 04 25 00 00 00 00 movq %gs:0x0, %rax ad: 5d popq %rbp ae: c3 retq af: 90 nop 00000000000000b0 : b0: 55 pushq %rbp b1: 48 89 e5 movq %rsp, %rbp b4: 65 48 8b 04 25 00 00 00 00 movq %gs:0x0, %rax bd: 48 05 20 05 00 00 addq $0x520, %rax # imm = 0x520 c3: 5d popq %rbp c4: c3 retq ==> /tmp/pcpu_demo.before.amd64.gcc.disas <== ./gcc13/usr/src/freebsd-branches/main-push/amd64.amd64/sys/GENERIC/pcpu_demo.o: file format elf64-x86-64 Disassembly of section .text: 0000000000000000 : 0: 65 48 8b 04 25 80 01 00 00 movq %gs:0x180, %rax 9: c3 retq a: 66 0f 1f 44 00 00 nopw (%rax,%rax) 0000000000000010 : 10: 65 8b 04 25 3c 00 00 00 movl %gs:0x3c, %eax 18: c3 retq 19: 0f 1f 80 00 00 00 00 nopl (%rax) 0000000000000020 : 20: 65 01 3c 25 3c 00 00 00 addl %edi, %gs:0x3c 28: c3 retq 29: 0f 1f 80 00 00 00 00 nopl (%rax) 0000000000000030 : 30: 65 89 3c 25 3c 00 00 00 movl %edi, %gs:0x3c 38: c3 retq 39: 0f 1f 80 00 00 00 00 nopl (%rax) 0000000000000040 : 40: 65 48 8b 04 25 80 01 00 00 movq %gs:0x180, %rax 49: 48 83 c0 3c addq $0x3c, %rax 4d: c3 retq 4e: 66 90 nop 0000000000000050 : 50: 65 48 8b 04 25 80 01 00 00 movq %gs:0x180, %rax 59: 48 83 c0 3c addq $0x3c, %rax 5d: 8b 00 movl (%rax), %eax 5f: c3 retq 0000000000000060 : 60: 65 48 8b 04 25 80 01 00 00 movq %gs:0x180, %rax 69: 48 83 c0 3c addq $0x3c, %rax 6d: 89 38 movl %edi, (%rax) 6f: c3 retq 0000000000000070 : 70: 65 48 8b 04 25 00 00 00 00 movq %gs:0x0, %rax 79: c3 retq 7a: 66 0f 1f 44 00 00 nopw (%rax,%rax) 0000000000000080 : 80: 65 48 8b 04 25 00 00 00 00 movq %gs:0x0, %rax 89: 48 05 20 05 00 00 addq $0x520, %rax # imm = 0x520 8f: c3 retq ==> /tmp/pcpu_demo.before.i386.clang.disas <== ./usr/src/freebsd-branches/main-push/i386.i386/sys/GENERIC/pcpu_demo.o: file format elf32-i386 Disassembly of section .text: 00000000 : 0: 55 pushl %ebp 1: 89 e5 movl %esp, %ebp 3: 64 a1 00 01 00 00 movl %fs:0x100, %eax 9: 5d popl %ebp a: c3 retl b: 90 nop c: 90 nop d: 90 nop e: 90 nop f: 90 nop 00000010 : 10: 55 pushl %ebp 11: 89 e5 movl %esp, %ebp 13: 64 a1 24 00 00 00 movl %fs:0x24, %eax 19: 5d popl %ebp 1a: c3 retl 1b: 90 nop 1c: 90 nop 1d: 90 nop 1e: 90 nop 1f: 90 nop 00000020 : 20: 55 pushl %ebp 21: 89 e5 movl %esp, %ebp 23: 8b 45 08 movl 0x8(%ebp), %eax 26: 64 01 05 24 00 00 00 addl %eax, %fs:0x24 2d: 5d popl %ebp 2e: c3 retl 2f: 90 nop 00000030 : 30: 55 pushl %ebp 31: 89 e5 movl %esp, %ebp 33: 8b 45 08 movl 0x8(%ebp), %eax 36: 64 a3 24 00 00 00 movl %eax, %fs:0x24 3c: 5d popl %ebp 3d: c3 retl 3e: 90 nop 3f: 90 nop 00000040 : 40: 55 pushl %ebp 41: 89 e5 movl %esp, %ebp 43: 64 a1 00 01 00 00 movl %fs:0x100, %eax 49: 83 c0 24 addl $0x24, %eax 4c: 5d popl %ebp 4d: c3 retl 4e: 90 nop 4f: 90 nop 00000050 : 50: 55 pushl %ebp 51: 89 e5 movl %esp, %ebp 53: 64 a1 00 01 00 00 movl %fs:0x100, %eax 59: 83 c0 24 addl $0x24, %eax 5c: 8b 00 movl (%eax), %eax 5e: 5d popl %ebp 5f: c3 retl 00000060 : 60: 55 pushl %ebp 61: 89 e5 movl %esp, %ebp 63: 8b 45 08 movl 0x8(%ebp), %eax 66: 64 8b 0d 00 01 00 00 movl %fs:0x100, %ecx 6d: 83 c1 24 addl $0x24, %ecx 70: 89 01 movl %eax, (%ecx) 72: 5d popl %ebp 73: c3 retl 74: 90 nop 75: 90 nop 76: 90 nop 77: 90 nop 78: 90 nop 79: 90 nop 7a: 90 nop 7b: 90 nop 7c: 90 nop 7d: 90 nop 7e: 90 nop 7f: 90 nop 00000080 : 80: 55 pushl %ebp 81: 89 e5 movl %esp, %ebp 83: 64 a1 00 00 00 00 movl %fs:0x0, %eax 89: 5d popl %ebp 8a: c3 retl 8b: 90 nop 8c: 90 nop 8d: 90 nop 8e: 90 nop 8f: 90 nop 00000090 : 90: 55 pushl %ebp 91: 89 e5 movl %esp, %ebp 93: 64 a1 10 00 00 00 movl %fs:0x10, %eax 99: 5d popl %ebp 9a: c3 retl ==> /tmp/pcpu_demo.before.i386.gcc.disas <== ./gcc13/usr/src/freebsd-branches/main-push/i386.i386/sys/GENERIC/pcpu_demo.o: file format elf32-i386 Disassembly of section .text: 00000000 : 0: 64 a1 00 01 00 00 movl %fs:0x100, %eax 6: c3 retl 7: 8d b4 26 00 00 00 00 leal (%esi,%eiz), %esi e: 66 90 nop 00000010 : 10: 64 a1 24 00 00 00 movl %fs:0x24, %eax 16: c3 retl 17: 8d b4 26 00 00 00 00 leal (%esi,%eiz), %esi 1e: 66 90 nop 00000020 : 20: 55 pushl %ebp 21: 89 e5 movl %esp, %ebp 23: 8b 45 08 movl 0x8(%ebp), %eax 26: 64 01 05 24 00 00 00 addl %eax, %fs:0x24 2d: 5d popl %ebp 2e: c3 retl 2f: 90 nop 00000030 : 30: 55 pushl %ebp 31: 89 e5 movl %esp, %ebp 33: 8b 45 08 movl 0x8(%ebp), %eax 36: 64 a3 24 00 00 00 movl %eax, %fs:0x24 3c: 5d popl %ebp 3d: c3 retl 3e: 66 90 nop 00000040 : 40: 64 a1 00 01 00 00 movl %fs:0x100, %eax 46: 83 c0 24 addl $0x24, %eax 49: c3 retl 4a: 8d b6 00 00 00 00 leal (%esi), %esi 00000050 : 50: 64 a1 00 01 00 00 movl %fs:0x100, %eax 56: 83 c0 24 addl $0x24, %eax 59: 8b 00 movl (%eax), %eax 5b: c3 retl 5c: 8d 74 26 00 leal (%esi,%eiz), %esi 00000060 : 60: 55 pushl %ebp 61: 89 e5 movl %esp, %ebp 63: 64 a1 00 01 00 00 movl %fs:0x100, %eax 69: 83 c0 24 addl $0x24, %eax 6c: 8b 55 08 movl 0x8(%ebp), %edx 6f: 89 10 movl %edx, (%eax) 71: 5d popl %ebp 72: c3 retl 73: 8d b4 26 00 00 00 00 leal (%esi,%eiz), %esi 7a: 8d b6 00 00 00 00 leal (%esi), %esi 00000080 : 80: 64 a1 00 00 00 00 movl %fs:0x0, %eax 86: c3 retl 87: 8d b4 26 00 00 00 00 leal (%esi,%eiz), %esi 8e: 66 90 nop 00000090 : 90: 64 a1 10 00 00 00 movl %fs:0x10, %eax 96: c3 retl