|
@@ -36,8 +36,10 @@ PV_CALLEE_SAVE_REGS_THUNK(__pv_queued_spin_unlock_slowpath);
|
|
|
*/
|
|
|
asm (".pushsection .text;"
|
|
|
".globl " PV_UNLOCK ";"
|
|
|
+ ".type " PV_UNLOCK ", @function;"
|
|
|
".align 4,0x90;"
|
|
|
PV_UNLOCK ": "
|
|
|
+ FRAME_BEGIN
|
|
|
"push %rdx;"
|
|
|
"mov $0x1,%eax;"
|
|
|
"xor %edx,%edx;"
|
|
@@ -45,6 +47,7 @@ asm (".pushsection .text;"
|
|
|
"cmp $0x1,%al;"
|
|
|
"jne .slowpath;"
|
|
|
"pop %rdx;"
|
|
|
+ FRAME_END
|
|
|
"ret;"
|
|
|
".slowpath: "
|
|
|
"push %rsi;"
|
|
@@ -52,6 +55,7 @@ asm (".pushsection .text;"
|
|
|
"call " PV_UNLOCK_SLOWPATH ";"
|
|
|
"pop %rsi;"
|
|
|
"pop %rdx;"
|
|
|
+ FRAME_END
|
|
|
"ret;"
|
|
|
".size " PV_UNLOCK ", .-" PV_UNLOCK ";"
|
|
|
".popsection");
|