为什么年轻的肉体让人沉迷?
一架波音787客机在印度坠毁,发现一名幸存者,超290人死亡,具体情况如何?事故原因可能是什么?
Rust 的设计缺陷是什么?
WebSocket 是什么原理?为什么可以实现持久连接?
QQ 音乐客户端新增广告引起用户吐槽,你对此有哪些评价?
有哪些比较惊艳的美女图片?

你知道自修改代码(Self-Modified Code, SMC)在哪些场景有应用?

发布日期:2025-06-27 20:35:16 浏览次数:0

Linux kernel 在启动时如果发现 CPU 只有一个核,会把所有 LOCK 前缀都修改为 NOP。

为了高效实现修改,代码里做了一个很骚的操作来把所有 LOCK 前缀的位置保存下来: #define LOCK_PREFIX_HERE \ ".pushsection .smp_locks,\"a\" " \ ".balign 4 " \ ".long 671f - . " /* offset */ \ ".popsection " \ "671:" #define LOCK_PREFIX LOCK_PREFIX_HERE " \tlock "(以上代码见 arch/x86/include/asm/alternativ…。

你知道自修改代码(Self-Modified Code, SMC)在哪些场景有应用?