| Commit message (Collapse) | Author | Age | Files | Lines |
| ... | |
| |
|
|
|
|
| |
backend.
llvm-svn: 183613
|
| |
|
|
| |
llvm-svn: 183589
|
| |
|
|
| |
llvm-svn: 183587
|
| |
|
|
|
|
|
|
| |
the internals of TargetMachine could change.
No functionality change intended.
llvm-svn: 183565
|
| |
|
|
|
|
| |
I am able to compile/assemble/link/run /bin/echo from FreeBSD.
llvm-svn: 183537
|
| |
|
|
| |
llvm-svn: 183463
|
| |
|
|
|
|
|
| |
Caching it as a pointer allows us to reset it if the TargetMachine object
changes.
llvm-svn: 183361
|
| |
|
|
| |
llvm-svn: 183243
|
| |
|
|
| |
llvm-svn: 183094
|
| |
|
|
|
|
| |
using two instructions (sethi and store).
llvm-svn: 183090
|
| |
|
|
| |
llvm-svn: 183088
|
| |
|
|
| |
llvm-svn: 183083
|
| |
|
|
|
|
| |
as non-leaf functions.
llvm-svn: 183079
|
| |
|
|
| |
llvm-svn: 183067
|
| |
|
|
|
|
|
| |
This also makes TableGen able to compute sizes/offsets of synthesized
indices representing tuples.
llvm-svn: 183061
|
| |
|
|
|
|
|
|
|
|
|
|
| |
Fixes PR16146: gdb.base__call-ar-st.exp fails after
pre-RA-sched=source fixes.
Patch by Xiaoyi Guo!
This also fixes an unsupported dbg.value test case. Codegen was
previously incorrect but the test was passing by luck.
llvm-svn: 182885
|
| |
|
|
|
|
| |
[-Wunused-function]
llvm-svn: 182850
|
| |
|
|
| |
llvm-svn: 182822
|
| |
|
|
|
|
|
| |
Change SelectionDAG::getXXXNode() interfaces as well as call sites of
these functions to pass in SDLoc instead of DebugLoc.
llvm-svn: 182703
|
| |
|
|
| |
llvm-svn: 182229
|
| |
|
|
| |
llvm-svn: 182228
|
| |
|
|
| |
llvm-svn: 182227
|
| |
|
|
|
|
|
|
| |
The wired physreg doesn't work on tied operands like on MOVXCC.
Add a README note to fix this later.
llvm-svn: 182225
|
| |
|
|
| |
llvm-svn: 182224
|
| |
|
|
| |
llvm-svn: 182222
|
| |
|
|
|
|
|
| |
Also clean up the arguments to all the MOVCC instructions so the
operands always are (true-val, false-val, cond-code).
llvm-svn: 182221
|
| |
|
|
|
|
|
|
| |
allocator will use I and G registers before using L and O registers.
Also, enable registers %g2-%g4 to be used in application and %g5 in 64 bit mode.
llvm-svn: 182219
|
| |
|
|
| |
llvm-svn: 182216
|
| |
|
|
|
|
|
| |
This is to generate correct framesetup code when the function
has variable sized allocas.
llvm-svn: 182108
|
| |
|
|
|
|
| |
slot.
llvm-svn: 182063
|
| |
|
|
|
|
|
|
|
|
|
|
| |
It was just a less powerful and more confusing version of
MCCFIInstruction. A side effect is that, since MCCFIInstruction uses
dwarf register numbers, calls to getDwarfRegNum are pushed out, which
should allow further simplifications.
I left the MachineModuleInfo::addFrameMove interface unchanged since
this patch was already fairly big.
llvm-svn: 181680
|
| |
|
|
| |
llvm-svn: 181618
|
| |
|
|
|
|
|
| |
Arguments after the fixed arguments never use the floating point
registers.
llvm-svn: 179987
|
| |
|
|
|
|
| |
Don't ignore the high 32 bits of the immediate.
llvm-svn: 179985
|
| |
|
|
|
|
|
|
|
|
|
|
| |
With a little help from the frontend, it looks like the standard va_*
intrinsics can do the job.
Also clean up an old bitcast hack in LowerVAARG that dealt with
unaligned double loads. Load SDNodes can specify an alignment now.
Still missing: Calling varargs functions with float arguments.
llvm-svn: 179961
|
| |
|
|
| |
llvm-svn: 179939
|
| |
|
|
| |
llvm-svn: 179582
|
| |
|
|
|
|
| |
Test case by llvm-stress.
llvm-svn: 179477
|
| |
|
|
|
|
| |
For when 16 TB just isn't enough.
llvm-svn: 179474
|
| |
|
|
|
|
|
| |
This is the default model for non-PIC 64-bit code. It supports
text+data+bss linked anywhere in the low 16 TB of the address space.
llvm-svn: 179473
|
| |
|
|
|
|
|
| |
64-bit code models need multiple relocations that can't be inferred from
the opcode like they can in 32-bit code.
llvm-svn: 179472
|
| |
|
|
|
|
|
| |
Constant pool entries are accessed exactly the same way as global
variables.
llvm-svn: 179471
|
| |
|
|
|
|
| |
This fixes the pic32 code model for SPARC v9.
llvm-svn: 179469
|
| |
|
|
|
|
|
|
|
| |
SDNodes and MachineOperands get target flags representing the %hi() and
%lo() assembly annotations that eventually become relocations.
Also define flags to be used by the 64-bit code models.
llvm-svn: 179468
|
| |
|
|
|
|
|
| |
Currently, only abs32 and pic32 are implemented. Add a test case for
abs32 with 64-bit code. 64-bit PIC code is currently broken.
llvm-svn: 179463
|
| |
|
|
|
|
|
| |
It doesn't seem like anybody is checking types this late in isel, so no
test case.
llvm-svn: 179462
|
| |
|
|
| |
llvm-svn: 179086
|
| |
|
|
|
|
|
|
|
|
| |
The save area is twice as big and there is no struct return slot. The
stack pointer is always 16-byte aligned (after adding the bias).
Also eliminate the stack adjustment instructions around calls when the
function has a reserved stack frame.
llvm-svn: 179083
|
| |
|
|
|
|
|
| |
There is still no support for byval arguments (which I don't think are
needed) and varargs.
llvm-svn: 178993
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Integer return values are sign or zero extended by the callee, and
structs up to 32 bytes in size can be returned in registers.
The CC_Sparc64 CallingConv definition is shared between
LowerFormalArguments_64 and LowerReturn_64. Function arguments and
return values are passed in the same registers.
The inreg flag is also used for return values. This is required to handle
C functions returning structs containing floats and ints:
struct ifp {
int i;
float f;
};
struct ifp f(void);
LLVM IR:
define inreg { i32, float } @f() {
...
ret { i32, float } %retval
}
The ABI requires that %retval.i is returned in the high bits of %i0
while %retval.f goes in %f1.
Without the inreg return value attribute, %retval.i would go in %i0 and
%retval.f would go in %f3 which is a more efficient way of returning
%multiple values, but it is not ABI compliant for returning C structs.
llvm-svn: 178966
|