- May 08, 2006
-
-
Evan Cheng authored
movw. That is we promote the destination operand to r16. So %CH = TRUNC_R16_R8 %BP is emitted as movw %bp, %cx. This is incorrect. If %cl is live, it would be clobbered. Ideally we want to do the opposite, that is emitted it as movb ??, %ch But this is not possible since %bp does not have a r8 sub-register. We are now defining a new register class R16_ which is a subclass of R16 containing only those 16-bit registers that have r8 sub-registers (i.e. AX - DX). We isel the truncate to two instructions, a MOV16to16_ to copy the value to the R16_ class, followed by a TRUNC_R16_R8. Due to bug 770, the register colaescer is not going to coalesce between R16 and R16_. That will be fixed later so we can eliminate the MOV16to16_. Right now, it can only be eliminated if we are lucky that source and destination registers are the same. llvm-svn: 28164
-
Nate Begeman authored
llvm-svn: 28162
-
- May 07, 2006
-
-
Evan Cheng authored
llvm-svn: 28158
-
Nate Begeman authored
still a couple missed optimizations, but we now generate all the possible rlwimis for multiple inserts into the same bitfield. More regression tests to come. llvm-svn: 28156
-
Chris Lattner authored
to handle all kinds of stuff, including silly things like: sextinreg(setcc,i16) -> setcc. llvm-svn: 28155
-
Chris Lattner authored
llvm-svn: 28154
-
Chris Lattner authored
llvm-svn: 28149
-
- May 06, 2006
-
-
Jeff Cohen authored
llvm-svn: 28148
-
Chris Lattner authored
This will certainly be enhanced in the future. llvm-svn: 28145
-
Chris Lattner authored
llvm-svn: 28139
-
Chris Lattner authored
llvm-svn: 28138
-
Chris Lattner authored
llvm-svn: 28135
-
- May 05, 2006
-
-
Chris Lattner authored
using them. llvm-svn: 28134
-
Chris Lattner authored
llvm-svn: 28133
-
Chris Lattner authored
llvm-svn: 28131
-
Evan Cheng authored
llvm-svn: 28127
-
Evan Cheng authored
that gets emitted as movl (for r32 to i16, i8) or a movw (for r16 to i8). And if the destination gets allocated a subregister of the source operand, then the instruction will not be emitted at all. llvm-svn: 28119
-
Chris Lattner authored
llvm-svn: 28118
-
- May 04, 2006
-
-
Chris Lattner authored
llvm-svn: 28105
-
Chris Lattner authored
llvm-svn: 28104
-
Chris Lattner authored
llvm-svn: 28102
-
Chris Lattner authored
llvm-svn: 28099
-
Chris Lattner authored
Loading and storing off R0 isn't what we wanted. Also, taking some CR's out of CRRC seems to cause failures as well. Further investigation is required. llvm-svn: 28097
-
Jeff Cohen authored
llvm-svn: 28096
-
Jeff Cohen authored
llvm-svn: 28095
-
Chris Lattner authored
llvm-svn: 28094
-
Chris Lattner authored
llvm-svn: 28093
-
Chris Lattner authored
llvm-svn: 28092
-
Chris Lattner authored
llvm-svn: 28091
-
Chris Lattner authored
llvm-svn: 28090
-
- May 03, 2006
-
-
Evan Cheng authored
movlps cannot be used (e.g. when load from m64 has multiple uses). llvm-svn: 28089
-
Chris Lattner authored
in MachineRelocation to create Relocations. llvm-svn: 28088
-
Chris Lattner authored
llvm-svn: 28083
-
Chris Lattner authored
simplifies the MachineCodeEmitter interface just a little bit and makes BasicBlocks work like constant pools and jump tables. llvm-svn: 28082
-
Chris Lattner authored
llvm-svn: 28081
-
Nate Begeman authored
instruction. llvm-svn: 28080
-
Owen Anderson authored
Refactor TargetMachine, pushing handling of TargetData into the target-specific subclasses. This has one caller-visible change: getTargetData() now returns a pointer instead of a reference. This fixes PR 759. llvm-svn: 28074
-
Chris Lattner authored
llvm-svn: 28069
-
Chris Lattner authored
llvm-svn: 28068
-
Chris Lattner authored
1. Change several methods in the MachineCodeEmitter class to be pure virtual. 2. Suck emitConstantPool/initJumpTableInfo into startFunction, removing them from the MachineCodeEmitter interface, and reducing the amount of target- specific code. 3. Change the JITEmitter so that it allocates constantpools and jump tables *right* next to the functions that they belong to, instead of in a separate pool of memory. This makes all memory for a function be contiguous, and means the JITEmitter only tracks one block of memory now. llvm-svn: 28065
-