Skip to content

Commit

Permalink
[SystemZ] Create brcl 0,0 instead of brcl 0,3 in EmitNop for 6 bytes.
Browse files Browse the repository at this point in the history
For consistency with GCC, the target label is moved to the brcl itself
instead of the next instruction.

Review: Ulrich Weigand
  • Loading branch information
JonPsson committed Jan 2, 2020
1 parent 1fcc9b6 commit 982695c
Show file tree
Hide file tree
Showing 3 changed files with 85 additions and 72 deletions.
2 changes: 1 addition & 1 deletion llvm/lib/Target/SystemZ/SystemZAsmPrinter.cpp
Expand Up @@ -545,9 +545,9 @@ static unsigned EmitNop(MCContext &OutContext, MCStreamer &OutStreamer,
else {
MCSymbol *DotSym = OutContext.createTempSymbol();
const MCSymbolRefExpr *Dot = MCSymbolRefExpr::create(DotSym, OutContext);
OutStreamer.EmitLabel(DotSym);
OutStreamer.EmitInstruction(MCInstBuilder(SystemZ::BRCLAsm)
.addImm(0).addExpr(Dot), STI);
OutStreamer.EmitLabel(DotSym);
return 6;
}
}
Expand Down
2 changes: 1 addition & 1 deletion llvm/test/CodeGen/SystemZ/mrecord-mcount-01.ll
Expand Up @@ -23,8 +23,8 @@ entry:
; CHECK: .quad .Ltmp1
; CHECK: .text
; CHECK: .Ltmp1:
; CHECK: brcl 0, .Ltmp2
; CHECK: .Ltmp2:
; CHECK: brcl 0, .Ltmp2
; CHECK: br %r14
}

Expand Down
153 changes: 83 additions & 70 deletions llvm/test/CodeGen/SystemZ/stackmap-nops.ll
Expand Up @@ -11,108 +11,121 @@ entry:
; CHECK: bc 0, 0

; 6
; CHECK: brcl 0, [[LAB:.Ltmp[0-9]+]]
; CHECK-NEXT: [[LAB]]:
; CHECK: .Ltmp
; CHECK-NEXT: [[LAB:.Ltmp[0-9]+]]:
; CHECK-NEXT: brcl 0, [[LAB]]

; 8
; CHECK: brcl 0, [[LAB:.Ltmp[0-9]+]]
; CHECK-NEXT: [[LAB]]:
; CHECK: .Ltmp
; CHECK-NEXT: [[LAB:.Ltmp[0-9]+]]:
; CHECK-NEXT: brcl 0, [[LAB]]
; CHECK: bcr 0, %r0

; 10
; CHECK: brcl 0, [[LAB:.Ltmp[0-9]+]]
; CHECK-NEXT: [[LAB]]:
; CHECK: .Ltmp
; CHECK-NEXT: [[LAB:.Ltmp[0-9]+]]:
; CHECK-NEXT: brcl 0, [[LAB]]
; CHECK: bc 0, 0

; 12
; CHECK: brcl 0, [[LAB:.Ltmp[0-9]+]]
; CHECK-NEXT: [[LAB]]:
; CHECK: brcl 0, [[LAB:.Ltmp[0-9]+]]
; CHECK-NEXT: [[LAB]]:
; CHECK: .Ltmp
; CHECK-NEXT: [[LAB:.Ltmp[0-9]+]]:
; CHECK-NEXT: brcl 0, [[LAB]]
; CHECK: [[LAB:.Ltmp[0-9]+]]:
; CHECK-NEXT: brcl 0, [[LAB]]

; 14
; CHECK: brcl 0, [[LAB:.Ltmp[0-9]+]]
; CHECK-NEXT: [[LAB]]:
; CHECK: brcl 0, [[LAB:.Ltmp[0-9]+]]
; CHECK-NEXT: [[LAB]]:
; CHECK: .Ltmp
; CHECK-NEXT: [[LAB:.Ltmp[0-9]+]]:
; CHECK-NEXT: brcl 0, [[LAB]]
; CHECK: [[LAB:.Ltmp[0-9]+]]:
; CHECK-NEXT: brcl 0, [[LAB]]
; CHECK: bcr 0, %r0

; 16
; CHECK: brcl 0, [[LAB:.Ltmp[0-9]+]]
; CHECK-NEXT: [[LAB]]:
; CHECK: brcl 0, [[LAB:.Ltmp[0-9]+]]
; CHECK-NEXT: [[LAB]]:
; CHECK: .Ltmp
; CHECK-NEXT: [[LAB:.Ltmp[0-9]+]]:
; CHECK-NEXT: brcl 0, [[LAB]]
; CHECK: [[LAB:.Ltmp[0-9]+]]:
; CHECK-NEXT: brcl 0, [[LAB]]
; CHECK: bc 0, 0

; 18
; CHECK: brcl 0, [[LAB:.Ltmp[0-9]+]]
; CHECK-NEXT: [[LAB]]:
; CHECK: brcl 0, [[LAB:.Ltmp[0-9]+]]
; CHECK-NEXT: [[LAB]]:
; CHECK: brcl 0, [[LAB:.Ltmp[0-9]+]]
; CHECK-NEXT: [[LAB]]:
; CHECK: .Ltmp
; CHECK-NEXT: [[LAB:.Ltmp[0-9]+]]:
; CHECK-NEXT: brcl 0, [[LAB]]
; CHECK: [[LAB:.Ltmp[0-9]+]]:
; CHECK-NEXT: brcl 0, [[LAB]]
; CHECK: [[LAB:.Ltmp[0-9]+]]:
; CHECK-NEXT: brcl 0, [[LAB]]

; 20
; CHECK: brcl 0, [[LAB:.Ltmp[0-9]+]]
; CHECK-NEXT: [[LAB]]:
; CHECK: brcl 0, [[LAB:.Ltmp[0-9]+]]
; CHECK-NEXT: [[LAB]]:
; CHECK: brcl 0, [[LAB:.Ltmp[0-9]+]]
; CHECK-NEXT: [[LAB]]:
; CHECK: .Ltmp
; CHECK-NEXT: [[LAB:.Ltmp[0-9]+]]:
; CHECK-NEXT: brcl 0, [[LAB]]
; CHECK: [[LAB:.Ltmp[0-9]+]]:
; CHECK-NEXT: brcl 0, [[LAB]]
; CHECK: [[LAB:.Ltmp[0-9]+]]:
; CHECK-NEXT: brcl 0, [[LAB]]
; CHECK: bcr 0, %r0

; 22
; CHECK: brcl 0, [[LAB:.Ltmp[0-9]+]]
; CHECK-NEXT: [[LAB]]:
; CHECK: brcl 0, [[LAB:.Ltmp[0-9]+]]
; CHECK-NEXT: [[LAB]]:
; CHECK: brcl 0, [[LAB:.Ltmp[0-9]+]]
; CHECK-NEXT: [[LAB]]:
; CHECK: .Ltmp
; CHECK-NEXT: [[LAB:.Ltmp[0-9]+]]:
; CHECK-NEXT: brcl 0, [[LAB]]
; CHECK: [[LAB:.Ltmp[0-9]+]]:
; CHECK-NEXT: brcl 0, [[LAB]]
; CHECK: [[LAB:.Ltmp[0-9]+]]:
; CHECK-NEXT: brcl 0, [[LAB]]
; CHECK: bc 0, 0

; 24
; CHECK: brcl 0, [[LAB:.Ltmp[0-9]+]]
; CHECK-NEXT: [[LAB]]:
; CHECK: brcl 0, [[LAB:.Ltmp[0-9]+]]
; CHECK-NEXT: [[LAB]]:
; CHECK: brcl 0, [[LAB:.Ltmp[0-9]+]]
; CHECK-NEXT: [[LAB]]:
; CHECK: brcl 0, [[LAB:.Ltmp[0-9]+]]
; CHECK-NEXT: [[LAB]]:
; CHECK: .Ltmp
; CHECK-NEXT: [[LAB:.Ltmp[0-9]+]]:
; CHECK-NEXT: brcl 0, [[LAB]]
; CHECK: [[LAB:.Ltmp[0-9]+]]:
; CHECK-NEXT: brcl 0, [[LAB]]
; CHECK: [[LAB:.Ltmp[0-9]+]]:
; CHECK-NEXT: brcl 0, [[LAB]]
; CHECK: [[LAB:.Ltmp[0-9]+]]:
; CHECK-NEXT: brcl 0, [[LAB]]

; 26
; CHECK: brcl 0, [[LAB:.Ltmp[0-9]+]]
; CHECK-NEXT: [[LAB]]:
; CHECK: brcl 0, [[LAB:.Ltmp[0-9]+]]
; CHECK-NEXT: [[LAB]]:
; CHECK: brcl 0, [[LAB:.Ltmp[0-9]+]]
; CHECK-NEXT: [[LAB]]:
; CHECK: brcl 0, [[LAB:.Ltmp[0-9]+]]
; CHECK-NEXT: [[LAB]]:
; CHECK: .Ltmp
; CHECK-NEXT: [[LAB:.Ltmp[0-9]+]]:
; CHECK-NEXT: brcl 0, [[LAB]]
; CHECK: [[LAB:.Ltmp[0-9]+]]:
; CHECK-NEXT: brcl 0, [[LAB]]
; CHECK: [[LAB:.Ltmp[0-9]+]]:
; CHECK-NEXT: brcl 0, [[LAB]]
; CHECK: [[LAB:.Ltmp[0-9]+]]:
; CHECK-NEXT: brcl 0, [[LAB]]
; CHECK: bcr 0, %r0

; 28
; CHECK: brcl 0, [[LAB:.Ltmp[0-9]+]]
; CHECK-NEXT: [[LAB]]:
; CHECK: brcl 0, [[LAB:.Ltmp[0-9]+]]
; CHECK-NEXT: [[LAB]]:
; CHECK: brcl 0, [[LAB:.Ltmp[0-9]+]]
; CHECK-NEXT: [[LAB]]:
; CHECK: brcl 0, [[LAB:.Ltmp[0-9]+]]
; CHECK-NEXT: [[LAB]]:
; CHECK: .Ltmp
; CHECK-NEXT: [[LAB:.Ltmp[0-9]+]]:
; CHECK-NEXT: brcl 0, [[LAB]]
; CHECK: [[LAB:.Ltmp[0-9]+]]:
; CHECK-NEXT: brcl 0, [[LAB]]
; CHECK: [[LAB:.Ltmp[0-9]+]]:
; CHECK-NEXT: brcl 0, [[LAB]]
; CHECK: [[LAB:.Ltmp[0-9]+]]:
; CHECK-NEXT: brcl 0, [[LAB]]
; CHECK: bc 0, 0

; 30
; CHECK: brcl 0, [[LAB:.Ltmp[0-9]+]]
; CHECK-NEXT: [[LAB]]:
; CHECK: brcl 0, [[LAB:.Ltmp[0-9]+]]
; CHECK-NEXT: [[LAB]]:
; CHECK: brcl 0, [[LAB:.Ltmp[0-9]+]]
; CHECK-NEXT: [[LAB]]:
; CHECK: brcl 0, [[LAB:.Ltmp[0-9]+]]
; CHECK-NEXT: [[LAB]]:
; CHECK: brcl 0, [[LAB:.Ltmp[0-9]+]]
; CHECK-NEXT: [[LAB]]:
; CHECK: .Ltmp
; CHECK-NEXT: [[LAB:.Ltmp[0-9]+]]:
; CHECK-NEXT: brcl 0, [[LAB]]
; CHECK: [[LAB:.Ltmp[0-9]+]]:
; CHECK-NEXT: brcl 0, [[LAB]]
; CHECK: [[LAB:.Ltmp[0-9]+]]:
; CHECK-NEXT: brcl 0, [[LAB]]
; CHECK: [[LAB:.Ltmp[0-9]+]]:
; CHECK-NEXT: brcl 0, [[LAB]]
; CHECK: [[LAB:.Ltmp[0-9]+]]:
; CHECK-NEXT: brcl 0, [[LAB]]

tail call void (i64, i32, ...) @llvm.experimental.stackmap(i64 0, i32 0)
tail call void (i64, i32, ...) @llvm.experimental.stackmap(i64 2, i32 2)
Expand Down

0 comments on commit 982695c

Please sign in to comment.