diff options
| author | Daniel Sanders <daniel.sanders@imgtec.com> | 2015-09-03 12:58:39 +0000 |
|---|---|---|
| committer | Daniel Sanders <daniel.sanders@imgtec.com> | 2015-09-03 12:58:39 +0000 |
| commit | 4f7cd2398b0438173edbcc4a063bb95216341d9f (patch) | |
| tree | 9315d1994de45277d1255f824c1bb192571b27ee /clang | |
| parent | dc2854c2f1c236323e66c98e94279d9ef561349a (diff) | |
| download | bcm5719-llvm-4f7cd2398b0438173edbcc4a063bb95216341d9f.tar.gz bcm5719-llvm-4f7cd2398b0438173edbcc4a063bb95216341d9f.zip | |
[mips] Added support for choosing between traps and breaks in the integrated assembler macros.
Summary: The command line options for these are -Wa,--trap and -Wa,--break.
Patch by Scott Egerton.
Reviewers: vkalintiris, dsanders
Subscribers: llvm-commits
Differential Revision: http://reviews.llvm.org/D11676
llvm-svn: 246765
Diffstat (limited to 'clang')
| -rw-r--r-- | clang/lib/Driver/Tools.cpp | 6 | ||||
| -rw-r--r-- | clang/test/Driver/mips-ias-Wa.s | 24 |
2 files changed, 30 insertions, 0 deletions
diff --git a/clang/lib/Driver/Tools.cpp b/clang/lib/Driver/Tools.cpp index 8afab2f23b0..eb245b38e09 100644 --- a/clang/lib/Driver/Tools.cpp +++ b/clang/lib/Driver/Tools.cpp @@ -2335,6 +2335,12 @@ static void CollectArgsForIntegratedAssembler(Compilation &C, } else if (Value.startswith("-mcpu") || Value.startswith("-mfpu") || Value.startswith("-mhwdiv") || Value.startswith("-march")) { // Do nothing, we'll validate it later. + } else if (Value == "--trap") { + CmdArgs.push_back("-target-feature"); + CmdArgs.push_back("+use-tcc-in-div"); + } else if (Value == "--break") { + CmdArgs.push_back("-target-feature"); + CmdArgs.push_back("-use-tcc-in-div"); } else { D.Diag(diag::err_drv_unsupported_option_argument) << A->getOption().getName() << Value; diff --git a/clang/test/Driver/mips-ias-Wa.s b/clang/test/Driver/mips-ias-Wa.s new file mode 100644 index 00000000000..a542493af6f --- /dev/null +++ b/clang/test/Driver/mips-ias-Wa.s @@ -0,0 +1,24 @@ +// RUN: %clang -target mips-linux-gnu -### -fintegrated-as -c %s 2>&1 | \ +// RUN: FileCheck -check-prefix=TRAP-DEFAULT %s +// TRAP-DEFAULT: -cc1as +// TRAP-DEFAULT-NOT: "-target-feature" "-use-tcc-in-div" + +// RUN: %clang -target mips-linux-gnu -### -fintegrated-as -c %s -Wa,--trap 2>&1 | \ +// RUN: FileCheck -check-prefix=TRAP-ON %s +// TRAP-ON: -cc1as +// TRAP-ON: "-target-feature" "+use-tcc-in-div" + +// RUN: %clang -target mips-linux-gnu -### -fintegrated-as -c %s -Wa,--break 2>&1 | \ +// RUN: FileCheck -check-prefix=TRAP-OFF %s +// TRAP-OFF: -cc1as +// TRAP-OFF: "-target-feature" "-use-tcc-in-div" + +// RUN: %clang -target mips-linux-gnu -### -fintegrated-as -c %s -Wa,--trap,--break 2>&1 | \ +// RUN: FileCheck -check-prefix=TRAP-BOTH-TRAP-FIRST %s +// TRAP-BOTH-TRAP-FIRST: -cc1as +// TRAP-BOTH-TRAP-FIRST: "-target-feature" "+use-tcc-in-div" "-target-feature" "-use-tcc-in-div" + +// RUN: %clang -target mips-linux-gnu -### -fintegrated-as -c %s -Wa,--break,--trap 2>&1 | \ +// RUN: FileCheck -check-prefix=TRAP-BOTH-BREAK-FIRST %s +// TRAP-BOTH-BREAK-FIRST: -cc1as +// TRAP-BOTH-BREAK-FIRST: "-target-feature" "-use-tcc-in-div" "-target-feature" "+use-tcc-in-div" |

