Changeset View
Changeset View
Standalone View
Standalone View
llvm/lib/Target/AArch64/AsmParser/AArch64AsmParser.cpp
Show First 20 Lines • Show All 991 Lines • ▼ Show 20 Lines | |||||
return false; | return false; | ||||
} | } | ||||
/// parseDirectiveSEHSaveRegP | /// parseDirectiveSEHSaveRegP | ||||
/// ::= .seh_save_regp | /// ::= .seh_save_regp | ||||
bool AArch64AsmParser::parseDirectiveSEHSaveRegP(SMLoc L) { | bool AArch64AsmParser::parseDirectiveSEHSaveRegP(SMLoc L) { | ||||
unsigned Reg; | unsigned Reg; | ||||
int64_t Offset; | int64_t Offset; | ||||
if (parseRegisterInRange(Reg, AArch64::X0, AArch64::X19, AArch64::LR) || | if (parseRegisterInRange(Reg, AArch64::X0, AArch64::X19, AArch64::FP) || | ||||
parseComma() || parseImmExpr(Offset)) | parseComma() || parseImmExpr(Offset)) | ||||
return true; | return true; | ||||
getTargetStreamer().EmitARM64WinCFISaveRegP(Reg, Offset); | getTargetStreamer().EmitARM64WinCFISaveRegP(Reg, Offset); | ||||
return false; | return false; | ||||
} | } | ||||
/// parseDirectiveSEHSaveRegPX | /// parseDirectiveSEHSaveRegPX | ||||
/// ::= .seh_save_regp_x | /// ::= .seh_save_regp_x | ||||
bool AArch64AsmParser::parseDirectiveSEHSaveRegPX(SMLoc L) { | bool AArch64AsmParser::parseDirectiveSEHSaveRegPX(SMLoc L) { | ||||
unsigned Reg; | unsigned Reg; | ||||
int64_t Offset; | int64_t Offset; | ||||
if (parseRegisterInRange(Reg, AArch64::X0, AArch64::X19, AArch64::X28) || | if (parseRegisterInRange(Reg, AArch64::X0, AArch64::X19, AArch64::FP) || | ||||
parseComma() || parseImmExpr(Offset)) | parseComma() || parseImmExpr(Offset)) | ||||
return true; | return true; | ||||
getTargetStreamer().EmitARM64WinCFISaveRegPX(Reg, Offset); | getTargetStreamer().EmitARM64WinCFISaveRegPX(Reg, Offset); | ||||
return false; | return false; | ||||
} | } | ||||
/// parseDirectiveSEHSaveLRPair | /// parseDirectiveSEHSaveLRPair | ||||
/// ::= .seh_save_lrpair | /// ::= .seh_save_lrpair | ||||
Show All 35 Lines | |||||
return false; | return false; | ||||
} | } | ||||
/// parseDirectiveSEHSaveFRegP | /// parseDirectiveSEHSaveFRegP | ||||
/// ::= .seh_save_fregp | /// ::= .seh_save_fregp | ||||
bool AArch64AsmParser::parseDirectiveSEHSaveFRegP(SMLoc L) { | bool AArch64AsmParser::parseDirectiveSEHSaveFRegP(SMLoc L) { | ||||
unsigned Reg; | unsigned Reg; | ||||
int64_t Offset; | int64_t Offset; | ||||
if (parseRegisterInRange(Reg, AArch64::D0, AArch64::D8, AArch64::D15) || | if (parseRegisterInRange(Reg, AArch64::D0, AArch64::D8, AArch64::D14) || | ||||
parseComma() || parseImmExpr(Offset)) | parseComma() || parseImmExpr(Offset)) | ||||
return true; | return true; | ||||
getTargetStreamer().EmitARM64WinCFISaveFRegP(Reg, Offset); | getTargetStreamer().EmitARM64WinCFISaveFRegP(Reg, Offset); | ||||
return false; | return false; | ||||
} | } | ||||
/// parseDirectiveSEHSaveFRegPX | /// parseDirectiveSEHSaveFRegPX | ||||
/// ::= .seh_save_fregp_x | /// ::= .seh_save_fregp_x | ||||
bool AArch64AsmParser::parseDirectiveSEHSaveFRegPX(SMLoc L) { | bool AArch64AsmParser::parseDirectiveSEHSaveFRegPX(SMLoc L) { | ||||
unsigned Reg; | unsigned Reg; | ||||
int64_t Offset; | int64_t Offset; | ||||
if (parseRegisterInRange(Reg, AArch64::D0, AArch64::D8, AArch64::D15) || | if (parseRegisterInRange(Reg, AArch64::D0, AArch64::D8, AArch64::D14) || | ||||
parseComma() || parseImmExpr(Offset)) | parseComma() || parseImmExpr(Offset)) | ||||
return true; | return true; | ||||
getTargetStreamer().EmitARM64WinCFISaveFRegPX(Reg, Offset); | getTargetStreamer().EmitARM64WinCFISaveFRegPX(Reg, Offset); | ||||
return false; | return false; | ||||
} | } | ||||
/// parseDirectiveSEHSetFP | /// parseDirectiveSEHSetFP | ||||
/// ::= .seh_set_fp | /// ::= .seh_set_fp | ||||
▲ Show 20 Lines • Show All 358 Lines • Show Last 20 Lines |