[all-commits] [llvm/llvm-project] fb391e: [libc++abi][AIX] Use reserved slot in stack to pas...

xingxue-ibm via All-commits all-commits at lists.llvm.org
Thu Oct 27 14:07:11 PDT 2022


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: fb391e45e9cc35429f077413ca660f4f5f5212c1
      https://github.com/llvm/llvm-project/commit/fb391e45e9cc35429f077413ca660f4f5f5212c1
  Author: Xing Xue <xingxue at outlook.com>
  Date:   2022-10-27 (Thu, 27 Oct 2022)

  Changed paths:
    M libcxxabi/src/aix_state_tab_eh.inc

  Log Message:
  -----------
  [libc++abi][AIX] Use reserved slot in stack to pass the address of exception object

Summary:
The existing implementation of the personality for legacy IBM xlclang++ compiler generated code passes the address of exception object in r14 for the landing pad to retrieve with a call to __xlc_exception_handle(). This clobbers the content of r14 in user code (and potentially, when running cleanup actions, the address of another exception object being passed). This patch changes to use the stack slot reserved for compilers to pass the address. It has been confirmed that xlclang++-generated code does not use this slot.

This is a follow-on of the origibal patch below with a change in comments.
   https://reviews.llvm.org/rGa499051f10a2d0150b60c14493558476039f701a

Reviewed by: hubert.reinterpretcast, cebowleratibm

Differential Revision: https://reviews.llvm.org/D136257




More information about the All-commits mailing list