brintos

brintos / llvm-project-archived public Read only

0
0
Text · 3.0 KiB · 531a7e3 Raw
81 lines · plain
1# RUN: llvm-mc -triple powerpc64-unknown-linux-gnu --filetype=obj -o - %s | \2# RUN:   llvm-objdump -D  -r - | FileCheck --check-prefix=CHECK-BE %s3# RUN: llvm-mc -triple powerpc64le-unknown-linux-gnu --filetype=obj -o - %s | \4# RUN:   llvm-objdump -D  -r - | FileCheck --check-prefix=CHECK-LE %s5 6# The purpose of this test is to make sure that 8 byte instructions do not7# cross 64 byte boundaries. If an 8 byte instruction is about to cross such8# a boundary then a nop should be added so that the 8 byte instruction starts9# 4 bytes later and does not cross the boundary.10# This instruction is 8 bytes: paddi 1, 2, 8589934576, 011# This instruction is 4 bytes: addi 2, 3, 1512# The branches are also 4 bytes each: beq 0, LAB1 (or LAB2)13 14beq 0, LAB1               # 415beq 1, LAB2               # 816# CHECK-BE:       0: 41 82 00 c0        bt 2, 0xc017# CHECK-BE-NEXT:  4: 41 86 00 f8        bt 6, 0xfc18# CHECK-LE:       0: c0 00 82 41        bt 2, 0xc019# CHECK-LE-NEXT:  4: f8 00 86 41        bt 6, 0xfc20paddi 1, 2, 8589934576, 0 # 1621paddi 1, 2, 8589934576, 0 # 2422paddi 1, 2, 8589934576, 0 # 3223paddi 1, 2, 8589934576, 0 # 4024paddi 1, 2, 8589934576, 0 # 4825paddi 1, 2, 8589934576, 0 # 5626addi 2, 3, 15             # 6027# Below the lines 40: and 44: contain the 8 byte instruction.28# We check to make sure that the nop is added at 3c: so that the 8 byte29# instruction can start at 40: which is 64 bytes aligned.30# CHECK-BE:      38:	38 43 00 0f31# CHECK-BE-NEXT: 3c:	60 00 00 00 	nop32# CHECK-BE-NEXT: 40:	06 01 ff ff 38 22 ff f0  paddi 1, 2, 8589934576, 033# CHECK-LE:      38:	0f 00 43 3834# CHECK-LE-NEXT: 3c:	00 00 00 60 	nop35# CHECK-LE-NEXT: 40:	ff ff 01 06 f0 ff 22 38  paddi 1, 2, 8589934576, 036paddi 1, 2, 8589934576, 037paddi 1, 2, 8589934576, 038paddi 1, 2, 8589934576, 039paddi 1, 2, 8589934576, 040paddi 1, 2, 8589934576, 041paddi 1, 2, 8589934576, 042paddi 1, 2, 8589934576, 043paddi 1, 2, 8589934576, 0 # 6444paddi 1, 2, 8589934576, 045paddi 1, 2, 8589934576, 046paddi 1, 2, 8589934576, 047paddi 1, 2, 8589934576, 048paddi 1, 2, 8589934576, 049paddi 1, 2, 8589934576, 050paddi 1, 2, 8589934576, 051addi 2, 3, 15             # 6052# CHECK-BE:      b8:	38 43 00 0f53# CHECK-BE-NEXT: bc:	60 00 00 00 	nop54# CHECK-BE:      <LAB1>:55# CHECK-BE-NEXT: c0:	06 01 ff ff 38 22 ff f0  paddi 1, 2, 8589934576, 056# CHECK-LE:      b8:	0f 00 43 3857# CHECK-LE-NEXT: bc:	00 00 00 60 	nop58# CHECK-LE:      <LAB1>:59# CHECK-LE-NEXT: c0:	ff ff 01 06 f0 ff 22 38  paddi 1, 2, 8589934576, 060LAB1: paddi 1, 2, 8589934576, 061paddi 1, 2, 8589934576, 062paddi 1, 2, 8589934576, 063paddi 1, 2, 8589934576, 064paddi 1, 2, 8589934576, 065paddi 1, 2, 8589934576, 066paddi 1, 2, 8589934576, 067addi 2, 3, 15             # 6068# CHECK-BE:      f8:	38 43 00 0f69# CHECK-BE:      <LAB2>:70# CHECK-BE-NEXT: fc:	60 00 00 00 	nop71# CHECK-BE-NEXT: 100:	06 01 ff ff 38 22 ff f0  paddi 1, 2, 8589934576, 072# CHECK-LE:      f8:	0f 00 43 3873# CHECK-LE:      <LAB2>:74# CHECK-LE-NEXT: fc:	00 00 00 60 	nop75# CHECK-LE-NEXT: 100:	ff ff 01 06 f0 ff 22 38  paddi 1, 2, 8589934576, 076LAB2:77  paddi 1, 2, 8589934576, 078 79 80 81