- Apr 07, 2013
-
-
Rafael Espindola authored
llvm-svn: 178994
-
Jakob Stoklund Olesen authored
There is still no support for byval arguments (which I don't think are needed) and varargs. llvm-svn: 178993
-
Rafael Espindola authored
These were the last missing forwarding functions. Also consistently use the forwarding functions instead of using MachOObj directly. llvm-svn: 178992
-
Rafael Espindola authored
LoadCommandInfo was needed to keep a command and its offset in the file. Now that we always have a pointer to the command, we don't need the offset. llvm-svn: 178991
-
Rafael Espindola authored
This avoids using MachOObject::getLoadCommandInfo. llvm-svn: 178990
-
Rafael Espindola authored
llvm-svn: 178989
-
Rafael Espindola authored
llvm-svn: 178988
-
Rafael Espindola authored
llvm-svn: 178987
-
Rafael Espindola authored
llvm-svn: 178986
-
Rafael Espindola authored
llvm-svn: 178985
-
Rafael Espindola authored
llvm-svn: 178984
-
Hal Finkel authored
llvm-svn: 178983
-
Hal Finkel authored
llvm-svn: 178982
-
Rafael Espindola authored
llvm-svn: 178981
-
Rafael Espindola authored
llvm-svn: 178980
-
Rafael Espindola authored
llvm-svn: 178979
-
Hal Finkel authored
llvm-svn: 178978
-
Rafael Espindola authored
llvm-svn: 178977
-
Rafael Espindola authored
llvm-svn: 178976
-
Benjamin Kramer authored
Fixes PR15693. A null check on a pointer returned from cast<> is a very dubious construct, do we have a checker for this somewhere? llvm-svn: 178975
-
Chandler Carruth authored
The fix for PR14972 in r177055 introduced a real think-o in the *store* side, likely because I was much more focused on the load side. While we can arbitrarily widen (or narrow) a loaded value, we can't arbitrarily widen a value to be stored, as that changes the width of memory access! Lock down the code path in the store rewriting which would do this to only handle the intended circumstance. All of the existing tests continue to pass, and I've added a test from the PR. llvm-svn: 178974
-
Hal Finkel authored
A few were missed in r178972. llvm-svn: 178973
-
Hal Finkel authored
llvm-svn: 178972
-
Hal Finkel authored
llvm-svn: 178971
-
Hal Finkel authored
llvm-svn: 178970
-
Eric Christopher authored
a relocation across sections. Do this for DW_AT_stmt list in the skeleton CU and check the relocations in the debug_info section. Add a FIXME for multiple CUs. llvm-svn: 178969
-
Reid Kleckner authored
MSVC 2012 gives warning D9025, "overriding /D NDEBUG with -UNDEBUG". Removing the original definition of NDEBUG silences this. llvm-svn: 178967
-
Jakob Stoklund Olesen authored
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
-
- Apr 06, 2013
-
-
Jakob Stoklund Olesen authored
64-bit SPARC v9 processes use biased stack and frame pointers, so the current function's stack frame is located at %sp+BIAS .. %fp+BIAS where BIAS = 2047. This makes more local variables directly accessible via [%fp+simm13] addressing. llvm-svn: 178965
-
Jason Molenda authored
re-fetch the value. llvm-svn: 178962
-
Hal Finkel authored
There are certain PPC instructions into which we can fold a zero immediate operand. We can detect such cases by looking at the register class required by the using operand (so long as it is not otherwise constrained). llvm-svn: 178961
-
Hal Finkel authored
llvm-svn: 178960
-
Hal Finkel authored
This comment documents the current behavior of the ARM implementation of this callback, and also the soon-to-be-committed PPC version. llvm-svn: 178959
-
Jakob Stoklund Olesen authored
All arguments are formally assigned to stack positions and then promoted to floating point and integer registers. Since there are more floating point registers than integer registers, this can cause situations where floating point arguments are assigned to registers after integer arguments that where assigned to the stack. Use the inreg flag to indicate 32-bit fragments of structs containing both float and int members. The three-way shadowing between stack, integer, and floating point registers requires custom argument lowering. The good news is that return values are passed in the exact same way, and we can share the code. Still missing: - Update LowerReturn to handle structs returned in registers. - LowerCall. - Variadic functions. llvm-svn: 178958
-
Jason Molenda authored
llvm-svn: 178955
-
Jason Molenda authored
llvm-svn: 178954
-
Jason Molenda authored
if we have an updated task_info call available; else fall back to getting the default host-wide page size. Update all uses of the vm page size to get it via MachVMMemory::PageSize(). <rdar://problem/13477763>, <rdar://problem/13498504> llvm-svn: 178953
-
Richard Smith authored
llvm-svn: 178952
-
Jason Molenda authored
to 'off' for a week or so while we test the behavior in different environments. llvm-svn: 178951
-
Richard Smith authored
linkage specification, and is marked as __attribute__((used)), try to also give it the unmangled name (by emitting an internal linkage alias) if nothing else within the translation unit would use that name. This allows inline asm in that translation unit to use the entity via its unmangled name, which people apparently rely on. llvm-svn: 178950
-