1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-24 11:42:57 +01:00
Go to file
Chris Lattner e40e2d4ec3 Refactor this code a bit and make it more general. This now compiles:
struct S { unsigned int i : 6, j : 11, k : 15; } b;
void plus2 (unsigned int x) { b.j += x; }

To:

_plus2:
        lis r2, ha16(L_b$non_lazy_ptr)
        lwz r2, lo16(L_b$non_lazy_ptr)(r2)
        lwz r4, 0(r2)
        slwi r3, r3, 6
        add r3, r4, r3
        rlwimi r3, r4, 0, 26, 14
        stw r3, 0(r2)
        blr


instead of:

_plus2:
        lis r2, ha16(L_b$non_lazy_ptr)
        lwz r2, lo16(L_b$non_lazy_ptr)(r2)
        lwz r4, 0(r2)
        rlwinm r5, r4, 26, 21, 31
        add r3, r5, r3
        rlwimi r4, r3, 6, 15, 25
        stw r4, 0(r2)
        blr

by eliminating an 'and'.

I'm pretty sure this is as small as we can go :)

llvm-svn: 23386
2005-09-18 07:22:02 +00:00
autoconf For PR619: 2005-08-24 10:43:10 +00:00
docs new expression type 2005-09-08 18:47:21 +00:00
examples For PR616: 2005-08-24 10:07:20 +00:00
include/llvm add a new callback 2005-09-17 01:02:45 +00:00
lib Refactor this code a bit and make it more general. This now compiles: 2005-09-18 07:22:02 +00:00
projects Implement PR614: 2005-08-27 18:50:39 +00:00
runtime Remove trailing whitespace 2005-04-21 23:48:37 +00:00
test new testcase 2005-09-18 05:10:39 +00:00
tools Add help support for -mcpu and -mattr. 2005-09-02 19:27:43 +00:00
utils Fix a minor bug, add comments 2005-09-16 00:29:46 +00:00
win32 Fix more Visual Studio build problems. 2005-09-10 02:33:17 +00:00
Xcode Added targets to speed up build of llc. 2005-09-09 17:50:20 +00:00
.cvsignore Ignore the configure.out file generated by "make reconfigure" 2005-06-18 23:01:25 +00:00
configure For PR616: 2005-08-24 10:07:20 +00:00
CREDITS.TXT Add a note, people are responsible for requesting that they be added to the 2005-08-02 22:10:21 +00:00
LICENSE.TXT Remove extraneous colons after program names for consistency 2005-05-12 21:39:01 +00:00
llvm.spec Onward to LLVM-1.6 and beyond! 2005-05-18 20:23:20 +00:00
Makefile For PR614: 2005-08-25 04:59:49 +00:00
Makefile.common Update comments to reflect new variable names. Patch contributed by 2005-02-14 16:02:19 +00:00
Makefile.config.in Two changes: 2005-04-22 17:14:14 +00:00
Makefile.rules allow for a target to ask for a dag isel 2005-09-03 01:15:25 +00:00
README.txt

Low Level Virtual Machine (LLVM)
================================

This directory and its subdirectories contain source code for the Low Level 
Virtual Machine, a toolkit for the construction of highly optimized compilers,
optimizers, and runtime environments. 

LLVM is open source software. You may freely distribute it under the terms of
the license agreement found in LICENSE.txt.

Please see the HTML documentation provided in docs/index.html for further
assistance with LLVM.