Commit Graph

101 Commits

Author SHA1 Message Date
Reid Kleckner fded34de2a MS inline asm: Tests for r214550
These tests seem like an exception to the rule against assembly emitting
tests in clang.  I made an LLVM side change that can only be tested by
setting up the inline assembly machinery that is only implemented by
Clang.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@214552 91177308-0d34-0410-b5e6-96231b3b80d8
2014-08-01 20:23:29 +00:00
Ehsan Akhgari 79cefc56a5 ms-inline-asm: Add a test to ensure that call doesn't clobber eax.
Note that it's not clear whether this is the right behavior, please see
the review for the discussion.

Reviewers: rnk

Subscribers: cfe-commits

Differential Revision: http://reviews.llvm.org/D4577

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@214401 91177308-0d34-0410-b5e6-96231b3b80d8
2014-07-31 13:43:17 +00:00
Ehsan Akhgari a04b2e4a75 Fix test/CodeGen/ms-inline-asm.c from r213916.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@213919 91177308-0d34-0410-b5e6-96231b3b80d8
2014-07-25 02:39:33 +00:00
Ehsan Akhgari e26841e34d clang-cl: Merge adjacent single-line __asm blocks
Summary:
This patch extends the __asm parser to make it keep parsing input tokens
as inline assembly if a single-line __asm line is followed by another line
starting with __asm too.  It also makes sure that we correctly keep
matching braces in such situations by separating the notions of how many
braces we are matching and whether we are in single-line asm block mode.

Reviewers: rnk

Subscribers: cfe-commits

Differential Revision: http://reviews.llvm.org/D4598

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@213916 91177308-0d34-0410-b5e6-96231b3b80d8
2014-07-25 02:27:14 +00:00
NAKAMURA Takumi cc6546f2b2 clang/test/CodeGen/ms-inline-asm.c: Fix for -Asserts.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@213329 91177308-0d34-0410-b5e6-96231b3b80d8
2014-07-17 22:51:49 +00:00
Nico Weber 6042ad3646 Add a test for PR20343 after llvm r213303.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@213305 91177308-0d34-0410-b5e6-96231b3b80d8
2014-07-17 20:25:36 +00:00
Ehsan Akhgari eb5c8705ec Add support for nested blocks in Microsoft inline assembly
This fixes http://llvm.org/PR20204.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@212389 91177308-0d34-0410-b5e6-96231b3b80d8
2014-07-06 05:26:54 +00:00
Ehsan Akhgari b514dc79c0 Add a test case for the tilde operator in Microsoft inline assembly
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@212373 91177308-0d34-0410-b5e6-96231b3b80d8
2014-07-05 15:04:06 +00:00
Reid Kleckner ca240502a5 MS asm: Filter out fpsw clobbers
When parsing MS inline assembly, we note that fpsw is an implicit def of
most x87 FP operations, and add it to the clobber list.  However, we
don't recognize fpsw as a gcc register name, and we assert.  Clang
always adds an fpsr clobber, which means the same thing to LLVM, so we
can just use that.

This test case was broken by my LLVM change r196939.

Reviewers: echristo

Differential Revision: http://llvm-reviews.chandlerc.com/D2993

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@204878 91177308-0d34-0410-b5e6-96231b3b80d8
2014-03-27 00:00:03 +00:00
Reid Kleckner cd2a97492e Add tests for MS inline asm change r203146
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@203147 91177308-0d34-0410-b5e6-96231b3b80d8
2014-03-06 19:19:36 +00:00
Reid Kleckner 2b1e087d47 Test case for clobbers on cpuid in ms inline asm
Tests r200279 in LLVM.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@200280 91177308-0d34-0410-b5e6-96231b3b80d8
2014-01-28 02:09:28 +00:00
Reid Kleckner 6eb228f6da Update clang MS inline asm tests for r196939
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@196940 91177308-0d34-0410-b5e6-96231b3b80d8
2013-12-10 18:27:51 +00:00
NAKAMURA Takumi a8fb443f44 clang/test: REQUIRES: s/x86-64-registered-target/x86-registered-target/
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@196350 91177308-0d34-0410-b5e6-96231b3b80d8
2013-12-04 03:41:33 +00:00
Rafael Espindola a3f55b026f Don't pass -O0 to clang_cc1, it is the default.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@189910 91177308-0d34-0410-b5e6-96231b3b80d8
2013-09-04 04:12:25 +00:00
Chad Rosier 68ea1d26ff Fix typo.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@179811 91177308-0d34-0410-b5e6-96231b3b80d8
2013-04-18 23:12:05 +00:00
Chad Rosier abee27ba69 Test cases for r179719.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@179720 91177308-0d34-0410-b5e6-96231b3b80d8
2013-04-17 21:02:39 +00:00
Chad Rosier 7b4700c783 Test cases for r179655.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@179656 91177308-0d34-0410-b5e6-96231b3b80d8
2013-04-17 00:12:09 +00:00
Chad Rosier 0c50a032f4 Add test case for r179403.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@179404 91177308-0d34-0410-b5e6-96231b3b80d8
2013-04-12 19:52:07 +00:00
Chad Rosier 579d8d1b77 Add test case for r179399.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@179400 91177308-0d34-0410-b5e6-96231b3b80d8
2013-04-12 18:54:40 +00:00
Chad Rosier 333ac6ed90 Add test case for r179383 and r179393.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@179394 91177308-0d34-0410-b5e6-96231b3b80d8
2013-04-12 18:22:08 +00:00
Chad Rosier b55dd767b2 [ms-inline asm] Move a few test cases from the 32-bit version to the 64-bit
version as lea is only available in 64-bit mode.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@179190 91177308-0d34-0410-b5e6-96231b3b80d8
2013-04-10 18:08:17 +00:00
Chad Rosier a5ceca924c [ms-inline asm] Add a few test cases that were regressed by r179115. That
commit was reverted in r179120, but I do plan on reapplying with a fix shortly.
Part of rdar://13611297


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@179182 91177308-0d34-0410-b5e6-96231b3b80d8
2013-04-10 16:33:34 +00:00
Chad Rosier 36ec9c2160 Test case for r179030.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@179031 91177308-0d34-0410-b5e6-96231b3b80d8
2013-04-08 17:44:05 +00:00
Chad Rosier b801837f69 Add test case for r178881.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@178882 91177308-0d34-0410-b5e6-96231b3b80d8
2013-04-05 16:29:17 +00:00
Chad Rosier 87d2a37bde Remove unnecessary attributes from test case.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@178188 91177308-0d34-0410-b5e6-96231b3b80d8
2013-03-27 21:54:09 +00:00
Chad Rosier 5e5ca1b7ed Add a front-end test case for r178186.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@178187 91177308-0d34-0410-b5e6-96231b3b80d8
2013-03-27 21:50:39 +00:00
Chad Rosier c7936c9b2b Test case for r177439 and r177440.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@177441 91177308-0d34-0410-b5e6-96231b3b80d8
2013-03-19 21:12:57 +00:00
Chad Rosier 8eecaaa16e Update test for r177413.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@177414 91177308-0d34-0410-b5e6-96231b3b80d8
2013-03-19 17:32:36 +00:00
Chad Rosier 2317dc8842 Test case for r177347.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@177349 91177308-0d34-0410-b5e6-96231b3b80d8
2013-03-18 23:32:33 +00:00
Chad Rosier 59c900304a Add a front-end test case for r176036.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@176038 91177308-0d34-0410-b5e6-96231b3b80d8
2013-02-25 19:13:23 +00:00
Bill Wendling 4e1125f630 Update to use references to attribute groups instead of listing the attributes on the call/invoke instructions.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@175878 91177308-0d34-0410-b5e6-96231b3b80d8
2013-02-22 09:10:20 +00:00
Chad Rosier 2ec6cfcfa0 [ms-inline asm] Remove this test while I investigate why eax isn't being clobbered.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@175637 91177308-0d34-0410-b5e6-96231b3b80d8
2013-02-20 17:39:31 +00:00
Chad Rosier a6e0a0db0a Add test case for r175312.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@175313 91177308-0d34-0410-b5e6-96231b3b80d8
2013-02-15 21:58:41 +00:00
Chad Rosier d8d7f5fb36 [ms-inline asm] Add test case for r175083.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@175084 91177308-0d34-0410-b5e6-96231b3b80d8
2013-02-13 21:34:54 +00:00
Chad Rosier 74992c495e [ms-inline-asm] Test cases to ensure the AsmRewrite list is sorted (r175021).
Part of rdar://13202662




git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@175022 91177308-0d34-0410-b5e6-96231b3b80d8
2013-02-13 01:06:08 +00:00
Chad Rosier 7243b0f000 [ms-inline-asm] Add test cases for the align/emit directives.
Part of rdar://13200215



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@175009 91177308-0d34-0410-b5e6-96231b3b80d8
2013-02-12 21:34:14 +00:00
Chad Rosier be8e36c5ee [ms-inline asm] Update test case now that we are correctly parsing __emit directives.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@175000 91177308-0d34-0410-b5e6-96231b3b80d8
2013-02-12 19:42:57 +00:00
Chad Rosier 9c504e93c1 Typo.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174995 91177308-0d34-0410-b5e6-96231b3b80d8
2013-02-12 19:15:05 +00:00
Chad Rosier 8e70b00253 [ms-inline asm] Add a few test cases for the parsing of hexidecimal integers.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174989 91177308-0d34-0410-b5e6-96231b3b80d8
2013-02-12 18:45:21 +00:00
Chad Rosier b2e2157f90 [ms-inline asm] Remove the -fenable-experimental-ms-inline-asm flag. MS-style
inline assembly can be enable with -fasm-blocks or -fms-extensions alone.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173186 91177308-0d34-0410-b5e6-96231b3b80d8
2013-01-22 19:38:32 +00:00
Chad Rosier 205ecf0193 [ms-inline asm] Updates and test case for r172743.
Part of rdar://12576868

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172744 91177308-0d34-0410-b5e6-96231b3b80d8
2013-01-17 19:22:48 +00:00
Chad Rosier 3731a41acb [ms-inline asm] Add test case for r172121.
Part of rdar://12991541


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172122 91177308-0d34-0410-b5e6-96231b3b80d8
2013-01-10 22:11:28 +00:00
Chad Rosier 6949ab1f5e [ms-inline asm] Add a test case for the offset operator where the operand is a
global variable.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@171919 91177308-0d34-0410-b5e6-96231b3b80d8
2013-01-08 23:51:48 +00:00
Chad Rosier 7520fcab8a Test case for r171784.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@171785 91177308-0d34-0410-b5e6-96231b3b80d8
2013-01-07 20:34:40 +00:00
Chad Rosier 15490fd42d [driver, ms-inline asm] MS-Style inline assembly is controlled by the
-fasm-blocks flag, not the -fms-extensions flag.
rdar://12808010

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@169422 91177308-0d34-0410-b5e6-96231b3b80d8
2012-12-05 21:08:21 +00:00
Chad Rosier e0c0196351 [ms-inline asm] Add more tests.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@169411 91177308-0d34-0410-b5e6-96231b3b80d8
2012-12-05 19:52:05 +00:00
Chad Rosier da5c3b7fa1 [ms-inline asm] Test case for r166790.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166791 91177308-0d34-0410-b5e6-96231b3b80d8
2012-10-26 18:04:45 +00:00
Chad Rosier d2e7d20dc7 [ms-inline asm] Add a test case for r166723 and r166724.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166725 91177308-0d34-0410-b5e6-96231b3b80d8
2012-10-25 21:52:03 +00:00
Chad Rosier f7427273d0 [ms-inline asm] Test case for r166632.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166633 91177308-0d34-0410-b5e6-96231b3b80d8
2012-10-24 22:22:12 +00:00
Chad Rosier 1bed9b7678 [ms-inline asm] Add test cases for r166451.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166600 91177308-0d34-0410-b5e6-96231b3b80d8
2012-10-24 17:48:01 +00:00