16097 Commits

Author SHA1 Message Date
Chris Lattner
305f78f646 Fix encoding of fneg instruction
llvm-svn: 18226
2004-11-25 03:53:44 +00:00
Chris Lattner
191e525bae Fix encoding of swari, fixing several programs, including Olden/mst
llvm-svn: 18225
2004-11-25 03:40:20 +00:00
Reid Spencer
58a9fe55fa Make the check print something, give the cache var an llvm specific name.
llvm-svn: 18224
2004-11-25 03:33:03 +00:00
Chris Lattner
5d8ae54267 There is not a 1-1 mappign between llvm blocks and PPC blocks, do not use
LLVM blocks as the keys for the branch rewriter.  This fixes treeadd and
many other programs with the JIT.

llvm-svn: 18223
2004-11-25 00:33:57 +00:00
Chris Lattner
dd516799d7 * Rename existing relocations to be more specific
* Add relocations for refernces to non-lazy darwin stubs and implement
  them correctly.

With this change, we can correctly references external globals, and now
all but two UnitTests and all but 1 Regression/C tests pass.

More importantly, bugpoint-jit will start giving us useful testcases,
instead of always telling us that references to external globals don't
work :)

llvm-svn: 18222
2004-11-24 22:30:08 +00:00
Nate Begeman
e49936af54 Add the same optimization that we do loading from fixed alloca slots to
storing to fixed alloca slots.

llvm-svn: 18221
2004-11-24 21:53:14 +00:00
Chris Lattner
078b6f2b62 Write CompilationCallback as an explicit assembly stub to avoid getting GCC's
prolog.

llvm-svn: 18220
2004-11-24 21:01:46 +00:00
Chris Lattner
659d72e319 When rewriting the original call instruction, make sure to rewrite it to
call the right address.

llvm-svn: 18213
2004-11-24 18:00:02 +00:00
Chris Lattner
cb9af557e7 Force the intregs ptr into R2 and the FPregs ptr into R3. This fixes a really
obscure problem where we were doing:

lmw     r3,0(r9)

which is undefined on PPC.  Now we do:

lmw     r3,0(r2)

by force, not relying on the GCC register allocator for luck :)

llvm-svn: 18212
2004-11-24 17:42:55 +00:00
Reid Spencer
80bb693109 Implement and document prefix options with arbitrary values including an
= sign. This needed to support -DNAME=value options as pass-through in
llvmc.

llvm-svn: 18203
2004-11-24 06:13:42 +00:00
Brian Gaeke
7217642438 Update list of failing benchmarks.
llvm-svn: 18202
2004-11-24 04:07:42 +00:00
Brian Gaeke
1139802b98 Fix bug in emitGEPOperation with large struct-member offsets.
llvm-svn: 18201
2004-11-24 04:07:33 +00:00
Chris Lattner
130888ad37 Fix a few more tests by encoding the extsb and other XForm11 instructions
correctly.

llvm-svn: 18200
2004-11-24 03:52:02 +00:00
Chris Lattner
022e271db5 Fix the encoding of ORi and other DForm4 instructions. This brings us to
36/42 SingleSource/UnitTests passing!

llvm-svn: 18199
2004-11-24 02:15:41 +00:00
Chris Lattner
57542fcfc2 Loads are relocatable too
llvm-svn: 18198
2004-11-24 02:03:44 +00:00
Chris Lattner
7b1cf0d6c6 Calls do not need a MovPCtoLR instruction
llvm-svn: 18197
2004-11-24 02:00:06 +00:00
Chris Lattner
6a7ebe034e Get constant pools working. This fixes even more programs, allowing us to
pass 24/42 in UnitTests (up from 20).

llvm-svn: 18196
2004-11-24 01:56:12 +00:00
Tanya Lattner
13c71ca7b6 Forced branches to be first to be scheduled.
llvm-svn: 18195
2004-11-24 01:49:10 +00:00
Chris Lattner
193b6f3281 Rewrite branches more closely to correct. This makes more stuff pass, and
stops the infinite loops!

llvm-svn: 18194
2004-11-24 01:35:12 +00:00
Chris Lattner
b55f748b1a Branch instructions explicitly represent CRx in them. bEcause of this, encode
them explicitly as well.

llvm-svn: 18193
2004-11-24 01:15:19 +00:00
Nate Begeman
674fe0bb60 Fix encoding of bctrl, and remove some unused instructions
llvm-svn: 18192
2004-11-24 00:16:37 +00:00
Reid Spencer
67386ceacc Make sure additional C++ suffixes are recognized by llvmc.
llvm-svn: 18191
2004-11-24 00:01:57 +00:00
Reid Spencer
a61edd8e92 Add the configurable configuration files for llvmc.
llvm-svn: 18190
2004-11-23 23:48:45 +00:00
Reid Spencer
cfa51ff82b * Adjust the options to make them either accept multiple occurrences or be
optional so that compatibility with GCC is accomplished.
* Implement the -print-file-name option in an attempt to provide the same
  functionality as GCC. Unfortunately, without loading the cpp or c config
  files, this option won't help much.

llvm-svn: 18189
2004-11-23 23:47:58 +00:00
Reid Spencer
cd893a9c50 * Don't pass empty arguments to ExecuteAndWait because it can cause the
sub-tool to start reading its standard input instead of the specified
  input.
* Clean up ouput of path names on error.
* Extend GetPathForLinkageItem to always search the LibraryPaths and thus
  make it suitable for an interface function (required by llvmc.cpp).
* Implement support for language-specific default library paths.

llvm-svn: 18188
2004-11-23 23:45:49 +00:00
Reid Spencer
5e1e6b9f82 Configuration data now supports a vector of library paths.
Add the GetPathForLinkageItem method to the interface so full paths can
be generated for a given linkage item.

llvm-svn: 18187
2004-11-23 23:40:06 +00:00
Reid Spencer
fe6dd9da55 Add the c and cpp configuration files.
llvm-svn: 18186
2004-11-23 23:38:46 +00:00
Reid Spencer
e1ae9d7c00 Removed in favor of configurable (*.in) versions.
llvm-svn: 18185
2004-11-23 23:38:07 +00:00
Reid Spencer
d51dfe3946 Make various adjustments to parsing so that the separator character doesn't
terminate options or paths, so that SPACE tokens legally separate options
on a command line, and so that the lang.libs paths are parsed properly.

llvm-svn: 18184
2004-11-23 23:37:26 +00:00
Reid Spencer
513587fbe6 SPACE is a legitimate token now, to separate option words.
llvm-svn: 18183
2004-11-23 23:35:50 +00:00
Reid Spencer
6a0d9b99df Handle space, separators, bad substitutions, and library search path better
than before.

llvm-svn: 18182
2004-11-23 23:35:16 +00:00
Reid Spencer
c14e53efb8 Configurable language configuration files.
llvm-svn: 18181
2004-11-23 23:33:08 +00:00
Reid Spencer
a193f3cdbf Allow reading of member names that begin with an _ character.
llvm-svn: 18179
2004-11-23 22:35:39 +00:00
Chris Lattner
c7eeae4661 Fix encoding of blr and bctr
llvm-svn: 18178
2004-11-23 22:06:24 +00:00
John Criswell
fd769457b8 Added remark about GCC 3.2.2. Someone with more knowledge of the problem
can elaborate.

llvm-svn: 18177
2004-11-23 22:06:24 +00:00
Nate Begeman
c5fc6f5717 Use the correct register class as a constaint to gcc's inline assembly, so
that we don't end up trying to use r0 as a base register.

llvm-svn: 18176
2004-11-23 21:37:22 +00:00
Nate Begeman
617760687a Save/Restore arg regs and nonvolatile regs the compiler might use during
CompilationCallback

llvm-svn: 18175
2004-11-23 21:34:18 +00:00
Chris Lattner
578dfd5e42 Fix the encoding of OR, AND and many other instructions
llvm-svn: 18174
2004-11-23 21:17:35 +00:00
Brian Gaeke
94c58dc877 Support shr long/ulong.
llvm-svn: 18173
2004-11-23 21:10:50 +00:00
Brian Gaeke
8d4a5ad55c Support printing ConstantAggregateZeros.
llvm-svn: 18172
2004-11-23 21:10:49 +00:00
Brian Gaeke
2e7f71863f Update failing SingleSource test-case list.
llvm-svn: 18171
2004-11-23 21:10:48 +00:00
Chris Lattner
a630adebc7 Remove argtype and argcount magic, which was used by the old asmprinter.
llvm-svn: 18170
2004-11-23 20:41:34 +00:00
Chris Lattner
be39b8f541 Get rid of flags that are dead
llvm-svn: 18169
2004-11-23 20:37:41 +00:00
Misha Brukman
c3184445de We also provide a source distribution of the GCC front-end
llvm-svn: 18166
2004-11-23 19:26:24 +00:00
Chris Lattner
5f4b0e1bf7 Fix encoding of rlwinm?
llvm-svn: 18165
2004-11-23 19:23:32 +00:00
Chris Lattner
1238cca6df Fix encodings
llvm-svn: 18164
2004-11-23 19:23:18 +00:00
Chris Lattner
431e0132ef Enumerate CR registers
llvm-svn: 18162
2004-11-23 18:59:59 +00:00
Chris Lattner
a8936af13e Initial implementation of exiting CompilationCallback
This should save all argument registers on entry and restore on exit, despite
that, simple things seem to work!!!

llvm-svn: 18161
2004-11-23 18:49:46 +00:00
Chris Lattner
febc3eb8fa This method is dead
llvm-svn: 18160
2004-11-23 18:47:55 +00:00
Chris Lattner
24ad93f55c Remove this method.
llvm-svn: 18159
2004-11-23 18:47:42 +00:00