zaley 发表于 2010-07-22 20:06

再请教一PPC汇编指令bnslr+(手册上我查不到)

10007db8:        38 00 00 a2         li  r0,162
10007dbc:        44 00 00 02         sc
10007dc0:        4c a3 00 20         bnslr+       

系统调用后 bnslr+ 是什么指令? 代表什么意思?

readkernel 发表于 2010-07-23 18:23

kernel 2.6.35

arch\powerpc\xmon\ppc-opc.c
const struct powerpc_opcode powerpc_opcodes[] = {
...
{ "bnslr+",XLOCB(19,BOFP4,CBSO,16,0), XLBOCBBB_MASK, POWER4, { CR } },
...
}

#define XLOCB(op, bo, cb, xop, lk) \
(XLO ((op), (bo), (xop), (lk)) | ((((unsigned long)(cb)) & 3) << 16))
#define XLOCB_MASK XLOCB (0x3f, 0x1f, 0x3, 0x3ff, 1)

实际e500 core datasheet pdf里
bnslr解释为
Branch if not summary overflow (bclr without
comparison conditions and LR updating)

再仔细理解下
页: [1]
查看完整版本: 再请教一PPC汇编指令bnslr+(手册上我查不到)