位运算后紧跟(-TCG_TARGET_STACK_MINFRAME)表示什么?

zhangxichao 2011-12-14 04:06:56
代码如下,其中SAVE, INSN_RD(TCG_REG_O6), INSN_RS1(TCG_REG_O6), INSN_IMM13, TCG_TARGET_STACK_MINFRAME都是宏定义的常量:

static inline void tcg_out32(TCGContext *s, uint32_t v)
{
*(uint32_t *)s->code_ptr = v;
s->code_ptr += 4;
}

static void tcg_target_qemu_prologue(TCGContext *s)
{
tcg_out32(s, SAVE | INSN_RD(TCG_REG_O6) | INSN_RS1(TCG_REG_O6) |
INSN_IMM13(-TCG_TARGET_STACK_MINFRAME));
...
}

调用tcg_out32时第二个参数是什么含义?这个参数在语法上怎么解释?
SAVE | INSN_RD(TCG_REG_O6) | INSN_RS1(TCG_REG_O6) | INSN_IMM13(-TCG_TARGET_STACK_MINFRAME)

...全文
79 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhangxichao 2011-12-15
  • 打赏
  • 举报
回复
昨天看晕了,仔细看才发现INSN_IMM13是个带参数的宏,不是常量
感谢楼上的批评
qq120848369 2011-12-14
  • 打赏
  • 举报
回复
问我们有什么用,看源码。

69,369

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧