llvm-project/llvm/lib/MC
Wouter van Oortmerssen 29c6ce5879 [WebAssembly] Make assembler check for proper nesting of control flow.
Summary:
It does so using a simple nesting stack, and gives clear errors upon
violation. This is unique to wasm, since most CPUs do not have
any nested constructs.

Had to add an end of file check to the general assembler for this.

Note: if/else/end instructions are not currently supported in our
tablegen defs, so these tests will be enabled in a follow-up.
They already pass the nesting check.

Reviewers: dschuff, aheejin

Subscribers: sbc100, jgravelle-google, sunfish, llvm-commits

Differential Revision: https://reviews.llvm.org/D55797

llvm-svn: 350078
2018-12-26 22:46:18 +00:00
..
MCDisassembler Remove trailing space 2018-07-30 19:41:25 +00:00
MCParser [WebAssembly] Make assembler check for proper nesting of control flow. 2018-12-26 22:46:18 +00:00
CMakeLists.txt Revert BTF commit series. 2018-10-12 19:41:05 +00:00
ConstantPools.cpp [MC] - ConstantPools.cpp: Style consistency, remove redundant braces. NFC. 2018-09-03 03:48:39 +00:00
ELFObjectWriter.cpp Recommit r348243 - "[llvm-mc] - Do not crash when referencing undefined debug sections." 2018-12-05 10:43:58 +00:00
LLVMBuild.txt [WebAssembly] Move toString helpers to BinaryFormat 2018-05-14 22:42:07 +00:00
MCAsmBackend.cpp [RISCV] Add symbol diff relocation support for RISC-V 2018-05-23 12:36:18 +00:00
MCAsmInfo.cpp [DEBUGINFO] Add option that allows to disable emission of flags in .loc directives. 2018-04-03 17:28:55 +00:00
MCAsmInfoCOFF.cpp [MC] Enable .file support on COFF and diagnose it on unsupported targets 2018-12-21 23:35:48 +00:00
MCAsmInfoDarwin.cpp
MCAsmInfoELF.cpp
MCAsmInfoWasm.cpp [WebAssembly] clang-format (NFC) 2018-09-05 01:27:38 +00:00
MCAsmMacro.cpp [Asm] Fix another layering violation in assmebly macro dumping 2018-03-06 16:51:17 +00:00
MCAsmStreamer.cpp [Dwarf/AArch64] Return address signing B key dwarf support 2018-12-21 10:45:08 +00:00
MCAssembler.cpp [macho] save the SDK version stored in module metadata into the version min and 2018-12-14 01:14:10 +00:00
MCCodeEmitter.cpp
MCCodePadder.cpp
MCCodeView.cpp [codeview] Flush labels before S_DEFRANGE* fragments 2018-12-17 21:49:35 +00:00
MCContext.cpp Revert BTF commit series. 2018-10-12 19:41:05 +00:00
MCDwarf.cpp [Dwarf/AArch64] Return address signing B key dwarf support 2018-12-21 10:45:08 +00:00
MCELFObjectTargetWriter.cpp The initial .text section generated in object files was missing the 2018-09-06 22:09:31 +00:00
MCELFStreamer.cpp [MC] Error on a .zerofill directive in a non-virtual section 2018-07-02 17:29:43 +00:00
MCExpr.cpp [WebAssembly] Add support for the event section 2018-11-14 02:46:21 +00:00
MCFragment.cpp [MC] - Fix build bot. 2018-12-05 11:06:29 +00:00
MCInst.cpp [ARM][Asm] Debug trace for the processInstruction loop 2018-12-03 10:21:28 +00:00
MCInstPrinter.cpp
MCInstrAnalysis.cpp [TableGen][SubtargetEmitter] Add the ability for processor models to describe dependency breaking instructions. 2018-09-19 15:57:45 +00:00
MCInstrDesc.cpp [ARM][MC] Move information about variadic register defs into tablegen 2018-12-03 10:32:42 +00:00
MCLabel.cpp IWYU for llvm-config.h in llvm, additions. 2018-04-30 14:59:11 +00:00
MCLinkerOptimizationHint.cpp MC: Change object writers to use endian::Writer. NFCI. 2018-05-21 18:17:42 +00:00
MCMachOStreamer.cpp [macho] save the SDK version stored in module metadata into the version min and 2018-12-14 01:14:10 +00:00
MCMachObjectTargetWriter.cpp
MCNullStreamer.cpp [MC] Implement EmitRawText in MCNullStreamer 2018-11-01 15:41:11 +00:00
MCObjectFileInfo.cpp [AArch64] [MinGW] Allow enabling SEH exceptions 2018-12-18 08:32:37 +00:00
MCObjectStreamer.cpp [codeview] Flush labels before S_DEFRANGE* fragments 2018-12-17 21:49:35 +00:00
MCObjectWriter.cpp
MCRegisterInfo.cpp [MC] Improve error message when a codeview register is unknown 2018-08-17 21:35:14 +00:00
MCSchedule.cpp [CodeGen] assume max/default throughput for unspecified instructions 2018-06-05 23:34:45 +00:00
MCSection.cpp The initial .text section generated in object files was missing the 2018-09-06 22:09:31 +00:00
MCSectionCOFF.cpp [COFF] Fix assembly output of comdat sections without an attached symbol 2018-07-23 22:15:19 +00:00
MCSectionELF.cpp [Hexagon] Handle Hexagon's SHF_HEX_GPREL section flag 2018-11-09 14:17:27 +00:00
MCSectionMachO.cpp
MCSectionWasm.cpp Remove redundant includes from lib/MC. 2017-12-13 21:30:54 +00:00
MCStreamer.cpp [Dwarf/AArch64] Return address signing B key dwarf support 2018-12-21 10:45:08 +00:00
MCSubtargetInfo.cpp [MC] fix documentation comments; NFC 2018-03-22 15:23:21 +00:00
MCSymbol.cpp IWYU for llvm-config.h in llvm, additions. 2018-04-30 14:59:11 +00:00
MCSymbolELF.cpp Remove redundant includes from lib/MC. 2017-12-13 21:30:54 +00:00
MCTargetOptions.cpp
MCValue.cpp IWYU for llvm-config.h in llvm, additions. 2018-04-30 14:59:11 +00:00
MCWasmObjectTargetWriter.cpp [WebAssembly] Remove unused headers in MCWasmObjectWriter 2018-05-16 22:13:18 +00:00
MCWasmStreamer.cpp [WebAssembly] Parsing missing directives to produce valid .o 2018-11-02 22:04:33 +00:00
MCWin64EH.cpp [AArch64] Avoid crashing on .seh directives in assembly 2018-12-18 22:10:17 +00:00
MCWinCOFFStreamer.cpp [MC] Add support for the .rva assembler directive for COFF targets 2018-07-26 20:11:26 +00:00
MCWinEH.cpp
MachObjectWriter.cpp [macho] save the SDK version stored in module metadata into the version min and 2018-12-14 01:14:10 +00:00
StringTableBuilder.cpp [DWARFv5] Emit .debug_line_str (in a non-DWO file). 2018-02-06 20:29:21 +00:00
SubtargetFeature.cpp IWYU for llvm-config.h in llvm, additions. 2018-04-30 14:59:11 +00:00
WasmObjectWriter.cpp [WebAssembly] Remove unused function return types (NFC) 2018-11-20 00:38:10 +00:00
WinCOFFObjectWriter.cpp llvm::sort(C.begin(), C.end(), ...) -> llvm::sort(C, ...) 2018-09-27 02:13:45 +00:00