Merge pull request #1367 from ucgJhe/dev

update return register accordingly for all arch
This commit is contained in:
xwings
2023-08-04 10:38:43 +08:00
committed by GitHub
4 changed files with 11 additions and 3 deletions
+1 -2
View File
@@ -20,8 +20,7 @@ class QlArmBaseCC(QlCommonBaseCC):
return 1
def setReturnAddress(self, addr: int) -> None:
# TODO: do we need to update LR?
self.arch.stack_push(addr)
self.arch.regs.lr = addr
def unwind(self, nslots: int) -> int:
# TODO: cleanup?
+3
View File
@@ -12,6 +12,9 @@ class mipso32(QlCommonBaseCC):
_shadow = 4
_retaddr_on_stack = False
def setReturnAddress(self, addr: int):
self.arch.regs.ra = addr
@staticmethod
def getNumSlots(argbits: int):
return 1
+3
View File
@@ -21,3 +21,6 @@ class ppc(QlCommonBaseCC):
@staticmethod
def getNumSlots(argbits: int):
return 1
def setReturnAddress(self, addr: int):
self.arch.regs.lr = addr
+4 -1
View File
@@ -19,4 +19,7 @@ class riscv(QlCommonBaseCC):
@staticmethod
def getNumSlots(argbits: int):
return 1
return 1
def setReturnAddress(self, addr: int):
self.arch.regs.ra = addr