欢迎光临散文网 会员登陆 & 注册

Mindustack:call return 初体验

2023-03-04 00:48 作者:jump晃悠  | 我要投稿

repo

https://github.com/Mindustack/llvmir2mlog

https://gitee.com/k88936/llvmir2mlog


llvmir :

define i4 @main(i4 %s) {
0:


%se=call i4 @g( )

ret i4 %se
}

define i4 @g() {
2:
  %15= call i4 @g()

  ret i4 1
}


mlog:

0:
  op add sp sp -4     #栈下降
  write ra cell sp    #保存返回地址

  op add ra @counter 2
  jump always 2       #call

  read ra cell sp     #还原
  op add sp sp 4      #上升

  set @counter ra     #返回
2:
  op add sp sp -4
  write ra cell sp

  op add ra @counter 2
  jump always 2       #快乐迭代

  set a0 1            #返回值

  read ra cell sp
  op add sp sp 4

  set @counter ra

Mindustack:call return 初体验的评论 (共 条)

分享到微博请遵守国家法律