All about GPR and APX PUSH POP
Evolution of GPR (General-Purpose Register) 16-bit Processors and Segmentation (1978) The IA-32 architecture family was preceded by 16-bit processors, the 80...
Evolution of GPR (General-Purpose Register) 16-bit Processors and Segmentation (1978) The IA-32 architecture family was preceded by 16-bit processors, the 80...
Motivation Somtimes branch mispredictions are a major performance limiter in workloads. The bottleneck is data-dependent conditional branches and hard to mit...
Why do we need JMPABS? JMPABS, which, as the name already suggests, allows jumping to a 64-bit absolute address. Before APX, X86 has 32-bit displacement limi...
REX2 Intel® APX introduces a new 2-byte REX2 prefix in order to support 32 general-purpose registers (GPRs).
What is marriage? Marriage does not solve anything, and problems that existed before marriage will persist after marriage. Marriage is just a contract, mainl...
What’s relocation Relocations are entries in binaries that are left to be filled later – at link time by the toolchain linker or at runtime by the dynamic li...
Learn by yourself Intel Software Developer’s Manual The most authoritative and official reference manual Volume 2 out of 4 volumes: Instr...
内容概要 什么是attribute C++11到C++17的常用attribute介绍 为名空间和枚举型添加attribute C++17新特性:忽略未知的attribute 使用using指令避免名空间的重复书写 Bjarne Stroustrup对attribute的使用建议
内容概要 什么是LLVM IR?如何得到IR? LLVM编译的流程,IR文件之间的链接简介 C++ name mangling的用途,“extern C”作用的极简介绍 IR文件的布局 IR中函数定义的结构,什么是BB,什么是CFG IR是一个强类型语言,如何用工具检查IR的合法性 ...