1# REQUIRES: ppc 2## Test code sequences of synthesized _restgpr0_{14..31} 3 4# RUN: llvm-mc -filetype=obj -triple=ppc64le %s -o %t14.o 5# RUN: ld.lld %t14.o -o %t14 6# RUN: llvm-objdump -d %t14 | FileCheck --check-prefix=R14 %s 7 8# R14-LABEL: <_restgpr0_14>: 9# R14-NEXT: ld 14, -144(1) 10# R14-NEXT: ld 15, -136(1) 11# R14-EMPTY: 12# R14-NEXT: <_restgpr0_16>: 13# R14-NEXT: ld 16, -128(1) 14# R14: ld 31, -8(1) 15# R14-NEXT: ld 0, 16(1) 16# R14-NEXT: mtlr 0 17# R14-NEXT: blr 18 19## Don't synthesize _restgpr0_{14..30} because they are unused. 20# RUN: echo 'bl _restgpr0_31' | llvm-mc -filetype=obj -triple=ppc64 - -o %t31.o 21# RUN: ld.lld %t31.o -o %t31 22# RUN: llvm-objdump -d %t31 | FileCheck --check-prefix=R31 %s 23 24# R31-LABEL: Disassembly of section .text: 25# R31-EMPTY: 26# R31-NEXT: <_restgpr0_31>: 27# R31-NEXT: ld 31, -8(1) 28# R31-NEXT: ld 0, 16(1) 29# R31-NEXT: mtlr 0 30# R31-NEXT: blr 31 32# RUN: echo 'bl _restgpr0_32' | llvm-mc -filetype=obj -triple=ppc64 - -o %t32.o 33# RUN: not ld.lld %t32.o -o /dev/null 34 35.globl _start 36_start: 37 bl _restgpr0_14 38 bl _restgpr0_16 39