SecBSD's official ports repository
This commit is contained in:
commit
2c0afcbbf3
64331 changed files with 5339189 additions and 0 deletions
|
@ -0,0 +1,25 @@
|
|||
Add retguard for arm64.
|
||||
|
||||
Index: lib/Target/AArch64/AArch64AsmPrinter.cpp
|
||||
--- lib/Target/AArch64/AArch64AsmPrinter.cpp.orig
|
||||
+++ lib/Target/AArch64/AArch64AsmPrinter.cpp
|
||||
@@ -1488,6 +1488,19 @@ void AArch64AsmPrinter::emitInstruction(const MachineI
|
||||
case AArch64::SEH_EpilogEnd:
|
||||
TS->emitARM64WinCFIEpilogEnd();
|
||||
return;
|
||||
+
|
||||
+ case AArch64::RETGUARD_JMP_TRAP:
|
||||
+ {
|
||||
+ MCSymbol *RGSuccSym = OutContext.createTempSymbol();
|
||||
+ /* Compare and branch */
|
||||
+ EmitToStreamer(*OutStreamer, MCInstBuilder(AArch64::CBZX)
|
||||
+ .addReg(MI->getOperand(0).getReg())
|
||||
+ .addExpr(MCSymbolRefExpr::create(RGSuccSym, OutContext)));
|
||||
+ EmitToStreamer(*OutStreamer, MCInstBuilder(AArch64::BRK).addImm(1));
|
||||
+ OutStreamer->emitLabel(RGSuccSym);
|
||||
+ return;
|
||||
+ }
|
||||
+
|
||||
}
|
||||
|
||||
// Finally, do the automated lowerings for everything else.
|
Loading…
Add table
Add a link
Reference in a new issue