- Mar 28, 2007
-
-
Chris Lattner authored
llvm-svn: 35430
-
Scott Michel authored
llvm-svn: 35429
-
Evan Cheng authored
llvm-svn: 35406
-
Bill Wendling authored
llvm-svn: 35394
-
Chris Lattner authored
system assembler not groking legal instructions like "leal (,%esi,8), %ecx". llvm-svn: 35393
-
Bill Wendling authored
llvm-svn: 35392
-
- Mar 27, 2007
-
-
Bill Wendling authored
the MMX instructions that are needed... llvm-svn: 35389
-
Bill Wendling authored
comparison operators. llvm-svn: 35385
-
Lauro Ramos Venancio authored
char" and it is up to the compilers implementation or the platform which is followed." http://www.arm.linux.org.uk/docs/faqs/signedchar.php llvm-svn: 35382
-
Lauro Ramos Venancio authored
llvm-svn: 35381
-
Evan Cheng authored
llvm-svn: 35366
-
- Mar 26, 2007
-
-
Bill Wendling authored
llvm-svn: 35353
-
Bill Wendling authored
llvm-svn: 35352
-
Bill Wendling authored
#include <mmintrin.h> extern __m64 C; void baz(__v2si *A, __v2si *B) { *A = C; _mm_empty(); } We get this: _baz: call "L1$pb" "L1$pb": popl %eax movl L_C$non_lazy_ptr-"L1$pb"(%eax), %eax movq (%eax), %mm0 movl 4(%esp), %eax movq %mm0, (%eax) emms ret GCC gives us this: _baz: pushl %ebx call L3 "L00000000001$pb": L3: popl %ebx subl $8, %esp movl L_C$non_lazy_ptr-"L00000000001$pb"(%ebx), %eax movl (%eax), %edx movl 4(%eax), %ecx movl 16(%esp), %eax movl %edx, (%eax) movl %ecx, 4(%eax) emms addl $8, %esp popl %ebx ret llvm-svn: 35351
-
- Mar 25, 2007
-
-
Anton Korobeynikov authored
llvm-svn: 35337
-
Chris Lattner authored
llvm-svn: 35334
-
Chris Lattner authored
llvm-svn: 35330
-
Chris Lattner authored
llvm-svn: 35329
-
Chris Lattner authored
not just the first letter. No functionality change. llvm-svn: 35322
-
Chris Lattner authored
Allow the b/h/w/k constraints to be applied to values that have multiple alternatives, and end up not being registers. llvm-svn: 35320
-
Chris Lattner authored
llvm-svn: 35319
-
Chris Lattner authored
llvm-svn: 35318
-
- Mar 24, 2007
-
-
Chris Lattner authored
llvm-svn: 35296
-
Anton Korobeynikov authored
llvm-svn: 35292
-
- Mar 23, 2007
-
-
Bill Wendling authored
Add final support to get the QT example to compile. llvm-svn: 35290
-
- Mar 22, 2007
-
-
Bill Wendling authored
intrinsic. llvm-svn: 35269
-
Bill Wendling authored
llvm-svn: 35266
-
- Mar 21, 2007
-
-
Dale Johannesen authored
llvm-svn: 35245
-
Anton Korobeynikov authored
llvm-svn: 35244
-
Anton Korobeynikov authored
llvm-svn: 35242
-
Dale Johannesen authored
llvm-svn: 35241
-
Nicolas Geoffray authored
is the frame pointer. llvm-svn: 35233
-
Evan Cheng authored
llvm-svn: 35230
-
- Mar 20, 2007
-
-
Evan Cheng authored
llvm-svn: 35229
-
Dale Johannesen authored
instructions (that would have to be split later) llvm-svn: 35227
-
Lauro Ramos Venancio authored
mov lr, pc bx lr So, the function was not called. llvm-svn: 35218
-
Evan Cheng authored
Make two piece constant generation as a single instruction. It's re-materialized as a load from constantpool. llvm-svn: 35207
-
Evan Cheng authored
llvm-svn: 35206
-
Evan Cheng authored
llvm-svn: 35205
-
Chris Lattner authored
1) codegen a shift of a register as a shift, not an LEA. 2) teach the RA to convert a shift to an LEA instruction if it wants something in three-address form. This gives us asm diffs like: - leal (,%eax,4), %eax + shll $2, %eax which is faster on some processors and smaller on all of them. and, more interestingly: - movl 24(%esi), %eax - leal (,%eax,4), %edi + movl 24(%esi), %edi + shll $2, %edi Without #2, #1 was a significant pessimization in some cases. This implements CodeGen/X86/shift-codegen.ll llvm-svn: 35204
-