Chad Rosier
45a52fa097
[ms-inline asm] Force the use of a base pointer if the MachineFunction includes
...
MS-style inline assembly.
This is a follow-on to r175334. Forcing a FP to be emitted doesn't ensure it
will be used. Therefore, force the base pointer as well. We now treat MS
inline assembly in the same way we treat functions with dynamic stack
realignment and VLAs. This guarantees the BP will be used to reference
parameters and locals.
rdar://13218191
llvm-svn: 175576
2013-02-19 23:50:45 +00:00
Benjamin Kramer
fb9ea4e659
Force a cpu for test. It failed on atom due to different scheduling decisions.
...
llvm-svn: 175401
2013-02-17 18:26:11 +00:00
Chad Rosier
925c9b499e
[ms-inline asm] Do not omit the frame pointer if we have ms-inline assembly.
...
If the frame pointer is omitted, and any stack changes occur in the inline
assembly, e.g.: "pusha", then any C local variable or C argument references
will be incorrect.
I pass no judgement on anyone who would do such a thing. ;)
rdar://13218191
llvm-svn: 175334
2013-02-16 01:25:28 +00:00
Chad Rosier
da05cf7ba7
[ms-inline asm] Fix up test case for non-Darwin platforms.
...
llvm-svn: 175087
2013-02-13 21:41:58 +00:00
Chad Rosier
282edd7caa
[ms-inline-asm] Add support for memory references that have non-immediate
...
displacements.
rdar://12974533
llvm-svn: 175083
2013-02-13 21:33:44 +00:00
NAKAMURA Takumi
e46e8225f4
llvm/test/CodeGen/X86/ms-inline-asm.ll: Fixup; Globals doesn't have leading underscore in symbol on linux.
...
llvm-svn: 172139
2013-01-10 23:02:48 +00:00
Chad Rosier
a4bc9437a2
[ms-inline asm] Add support for calling functions from inline assembly.
...
Part of rdar://12991541
llvm-svn: 172121
2013-01-10 22:10:27 +00:00
Chad Rosier
466c1c6870
Remove redundant test case from r166949, per Eli's suggestion.
...
llvm-svn: 166953
2012-10-29 18:18:26 +00:00
Chad Rosier
1bbaa449ad
[ms-inline asm] Add support for the [] operator. Essentially, [expr1][expr2] is
...
equivalent to [expr1 + expr2]. See test cases for more examples.
rdar://12470392
llvm-svn: 166949
2012-10-29 18:01:54 +00:00
Chad Rosier
dd5eada241
[ms-inline asm] Add back-end test case for r166632. Make sure we emit the
...
correct .s output as well as get the correct encoding by the integrated
assembler.
llvm-svn: 166638
2012-10-24 23:10:28 +00:00
Chad Rosier
271623f8ae
[ms-inline asm] Add support in the X86AsmPrinter for printing memory references
...
in the Intel syntax.
The MC layer supports emitting in the Intel syntax, but this would require the
inline assembly MachineInstr to be lowered to an MCInst before emission. This
is potential future work, but for now emitting directly from the MachineInstr
suffices.
llvm-svn: 165173
2012-10-03 22:06:44 +00:00
Chad Rosier
1778831a3d
[ms-inline asm] Split the parsing of IR asm strings into GCC and MS variants.
...
Add support in the EmitMSInlineAsmStr() function for handling integer consts.
llvm-svn: 163645
2012-09-11 19:09:56 +00:00
Chad Rosier
ab51c9de34
Formatting. No functional change intended.
...
llvm-svn: 163627
2012-09-11 16:33:10 +00:00
NAKAMURA Takumi
8c72306cdb
test/CodeGen/X86/ms-inline-asm.ll: Relax for non-darwin x86 targets. '##InlineAsm' could not be seen in other hosts.
...
llvm-svn: 163554
2012-09-10 22:04:54 +00:00
Chad Rosier
7641f58784
[ms-inline asm] Properly emit the asm directives when the AsmPrinterVariant
...
and InlineAsmVariant don't match.
llvm-svn: 163550
2012-09-10 21:36:05 +00:00
Chad Rosier
1c1319b9e7
Update test case for Release builds.
...
llvm-svn: 163549
2012-09-10 21:31:43 +00:00
Chad Rosier
db20a41d99
[ms-inline asm] Pass the correct AsmVariant to the PrintAsmOperand() function
...
and update the printOperand() function accordingly.
llvm-svn: 163544
2012-09-10 21:10:49 +00:00