[英语单词] clobber

clobber
n. 衣服, (鞋匠用来掩饰皮革缝的)软膏
vt. 痛打, 击倒, 拉垮
klɒbə®;v [Tn] (infml 口) 1 strike (sb) heavily and repeatedly 连续重击(某人): (fig 比喻) The police intend to clobber drunk drivers, ie punish them severely. 警方拟持续不断地严惩醉酒驾驶者. * The new tax laws will clobber small businesses, ie harm them financially. 新税法对小型企业, 将是一连串的打击. 2 defeat (sb/sth) completely 彻底挫败(某人[某事物]): Our team got clobbered on Saturday. 我们队星期六一败涂地. 3 criticize (sb/sth) severely 狠狠地批评(某人[某事物]).

https://gcc.gnu.org/onlinedocs/gcc/Local-Register-Variables.html
As with global register variables, it is recommended that you choose a register that is normally saved and restored by function calls on your machine, so that calls to library routines will not clobber it.
建议选择一个函数调用时可以自动保存及恢复的寄存器,这样寄存器的值不会被篡改。这里使用的主要意图就是强调:意外的改动,非本意的改动。

In the above example, be aware that a register (for example r0) can be call-clobbered by subsequent code, including function calls and library calls for arithmetic operators on other variables (for example the initialization of p2).
call-clobbered, 这里时说,函数调用可能会篡改。

struct pt_regs {
    
    
/*
 * C ABI says these regs are callee-preserved. They aren't saved on kernel entry
 * unless syscall needs a complete, fully filled "struct pt_regs".
 */
	unsigned long r15;
	unsigned long r14;
	unsigned long r13;
	unsigned long r12;
	unsigned long bp;
	unsigned long bx;
/* These regs are callee-clobbered. Always saved on kernel entry. */   篡改,被调用函数篡改的可能,要保存在kernel的内核内存中
	unsigned long r11;
	unsigned long r10;
	unsigned long r9;
	unsigned long r8;
	unsigned long ax;
	unsigned long cx;
	unsigned long dx;
	unsigned long si;
	unsigned long di;

猜你喜欢

转载自blog.csdn.net/qq_36428903/article/details/125739836