cd81d94322a39503e4a3e87b6ee03d4fcb3465fb |
|
21-Jul-2014 |
Stephen Hines <srhines@google.com> |
Update LLVM for rebase to r212749. Includes a cherry-pick of: r212948 - fixes a small issue with atomic calls Change-Id: Ib97bd980b59f18142a69506400911a6009d9df18
/external/llvm/lib/Target/X86/X86CodeEmitter.cpp
|
dce4a407a24b04eebc6a376f8e62b41aaa7b071f |
|
29-May-2014 |
Stephen Hines <srhines@google.com> |
Update LLVM for 3.5 rebase (r209712). Change-Id: I149556c940fb7dc92d075273c87ff584f400941f
/external/llvm/lib/Target/X86/X86CodeEmitter.cpp
|
36b56886974eae4f9c5ebc96befd3e7bfe5de338 |
|
24-Apr-2014 |
Stephen Hines <srhines@google.com> |
Update to LLVM 3.5a. Change-Id: Ifadecab779f128e62e430c2b4f6ddd84953ed617
/external/llvm/lib/Target/X86/X86CodeEmitter.cpp
|
f63c806e110f84e7993eb59cf2976f7328f20733 |
|
29-Sep-2013 |
Craig Topper <craig.topper@gmail.com> |
Change type of XOP flag in code emitters to a bool. Remove a some unneeded cases from switch. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@191632 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86CodeEmitter.cpp
|
bd0decae3c0af9eb38592f305935559782096c9e |
|
29-Sep-2013 |
Craig Topper <craig.topper@gmail.com> |
Add comments for XOPA map introduced with TBM instructions.a git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@191630 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86CodeEmitter.cpp
|
685707c28e2c7117f025fb4e95e6ca64ed179bb0 |
|
27-Sep-2013 |
Yunzhong Gao <Yunzhong_Gao@playstation.sony.com> |
Adding intrinsics to the llvm backend for TBM instruction set. Phabricator code review is located here: http://llvm-reviews.chandlerc.com/D1750 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@191539 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86CodeEmitter.cpp
|
5bdf397e25bf0e5a6473f44d49a04e8ff184c442 |
|
21-Aug-2013 |
Craig Topper <craig.topper@gmail.com> |
Synchronize VEX JIT encoding code with the MCJIT version. Fix a bug in the MCJIT code where CurOp was being incremented even if the operand it was pointing at wasn't used. Maybe only matters if there are any EVEX_K instructions that aren't VEX_4V. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@188868 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86CodeEmitter.cpp
|
ec7b5e9290bc0e1b266525a4757773e9ab87847e |
|
21-Aug-2013 |
Nadav Rotem <nrotem@apple.com> |
In LLVM FMA3 operands are dst, src1, src2, src3, however dst is not encoded as it is always src1. This was causing the encoding of the operands to be off by one. Patch by Chris Bieneman. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@188866 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86CodeEmitter.cpp
|
1ce4985e019fcb89c6d827ba6cd11e3c4365121b |
|
07-Jun-2013 |
Bill Wendling <isanbard@gmail.com> |
Remove unused c'tor. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@183570 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86CodeEmitter.cpp
|
85c622d6b6633c19d2729e82453c6c7f56ee7cd9 |
|
01-Jun-2013 |
Tim Northover <tnorthover@apple.com> |
X86: change MOV64ri64i32 into MOV32ri64 The MOV64ri64i32 instruction required hacky MCInst lowering because it was allocated as setting a GR64, but the eventual instruction ("movl") only set a GR32. This converts it into a so-called "MOV32ri64" which still accepts a (appropriate) 64-bit immediate but defines a GR32. This is then converted to the full GR64 by a SUBREG_TO_REG operation, thus keeping everyone happy. This fixes a typo in the opcode field of the original patch, which should make the legact JIT work again (& adds test for that problem). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@183068 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86CodeEmitter.cpp
|
34431085def8f67db07ccb7485138176bba5a90a |
|
01-Jun-2013 |
Eric Christopher <echristo@gmail.com> |
Temporarily Revert "X86: change MOV64ri64i32 into MOV32ri64" as it seems to have caused PR16192 and other JIT related failures. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@183059 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86CodeEmitter.cpp
|
43887bf3e62daab1c8571be8a73741c9275f866a |
|
31-May-2013 |
Tim Northover <tnorthover@apple.com> |
X86: change MOV64ri64i32 into MOV32ri64 The MOV64ri64i32 instruction required hacky MCInst lowering because it was allocated as setting a GR64, but the eventual instruction ("movl") only set a GR32. This converts it into a so-called "MOV32ri64" which still accepts a (appropriate) 64-bit immediate but defines a GR32. This is then converted to the full GR64 by a SUBREG_TO_REG operation, thus keeping everyone happy. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@182991 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86CodeEmitter.cpp
|
02d2e612521954b5ff7c1ba6fd53e36bc51e1c48 |
|
11-Apr-2013 |
Michael Liao <michael.liao@intel.com> |
Add CLAC/STAC instruction encoding/decoding support As these two instructions in AVX extension are privileged instructions for special purpose, it's only expected to be used in inlined assembly. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@179266 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86CodeEmitter.cpp
|
8647750dfbae36a7a49767202a2e363ffc861e5a |
|
16-Mar-2013 |
Craig Topper <craig.topper@gmail.com> |
Add X86 code emitter support AVX encoded MRMDestReg instructions. Previously we weren't skipping the VVVV encoded register. Based on patch by Michael Liao. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@177221 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86CodeEmitter.cpp
|
fdf168fbc415a4d2e3cfec36f328979f11a3186f |
|
14-Mar-2013 |
Craig Topper <craig.topper@gmail.com> |
Fix the name of a variable to match its declaration. Fixes build failure from r177014. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@177015 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86CodeEmitter.cpp
|
9d3f3c5f400578855f6f7b71670cb8514b4fac0f |
|
14-Mar-2013 |
Craig Topper <craig.topper@gmail.com> |
Fix a bug in the calculation of the VEX.B bit for FMA4 rr with the VEX.W bit set. The VEX.B was being calculated from the wrong operand. Fixes at least some portion of PR14185. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@177014 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86CodeEmitter.cpp
|
d07c2a5fa1fd3bee45104953714a128cf5e19158 |
|
05-Feb-2013 |
Eli Bendersky <eliben@google.com> |
Fix comments git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@174390 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86CodeEmitter.cpp
|
0b8c9a80f20772c3793201ab5b251d3520b9cea3 |
|
02-Jan-2013 |
Chandler Carruth <chandlerc@gmail.com> |
Move all of the header files which are involved in modelling the LLVM IR into their new header subdirectory: include/llvm/IR. This matches the directory structure of lib, and begins to correct a long standing point of file layout clutter in LLVM. There are still more header files to move here, but I wanted to handle them in separate commits to make tracking what files make sense at each layer easier. The only really questionable files here are the target intrinsic tablegen files. But that's a battle I'd rather not fight today. I've updated both CMake and Makefile build systems (I think, and my tests think, but I may have missed something). I've also re-sorted the includes throughout the project. I'll be committing updates to Clang, DragonEgg, and Polly momentarily. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@171366 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86CodeEmitter.cpp
|
d04a8d4b33ff316ca4cf961e06c9e312eff8e64f |
|
03-Dec-2012 |
Chandler Carruth <chandlerc@gmail.com> |
Use the new script to sort the includes of every file under lib. Sooooo many of these had incorrect or strange main module includes. I have manually inspected all of these, and fixed the main module include to be the nearest plausible thing I could find. If you own or care about any of these source files, I encourage you to take some time and check that these edits were sensible. I can't have broken anything (I strictly added headers, and reordered them, never removed), but they may not be the headers you'd really like to identify as containing the API being implemented. Many forward declarations and missing includes were added to a header files to allow them to parse cleanly when included first. The main module rule does in fact have its merits. =] git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@169131 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86CodeEmitter.cpp
|
3574eca1b02600bac4e625297f4ecf745f4c4f32 |
|
08-Oct-2012 |
Micah Villmow <villmow@gmail.com> |
Move TargetData to DataLayout. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@165402 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86CodeEmitter.cpp
|
7abf67a092c0a75d6d1631766d6a8ef14e38d526 |
|
04-Oct-2012 |
Michael Liao <michael.liao@intel.com> |
Add register encoding support in X86 backend - Add 'HwEncoding' for X86 registers and call getEncodingValue() to retrieve their encoding values. - This's the first step to adopt new scheme. Furthur revising is onging. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@165241 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86CodeEmitter.cpp
|
8a312fb3aaec90537d434a5cc41edf566ff80dca |
|
19-Sep-2012 |
Craig Topper <craig.topper@gmail.com> |
Remove code for setting the VEX L-bit as a function of operand size from the code emitters and the disassembler table builder. Fix a couple instructions that were still missing VEX_L. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@164204 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86CodeEmitter.cpp
|
96601ca332ab388754ca4673be8973396fea2ddd |
|
22-Aug-2012 |
Craig Topper <craig.topper@gmail.com> |
Add a getName function to MachineFunction. Use it in places that previously did getFunction()->getName(). Remove includes of Function.h that are no longer needed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@162347 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86CodeEmitter.cpp
|
f654554ee0693770308e187df9d411c8a51bebde |
|
20-Jul-2012 |
Craig Topper <craig.topper@gmail.com> |
Don't use implicit register operands to calculate L-bit for AVX instructions. Needed because super reg defs and kills are added as implicit operands on 128-bit instructions. Fixes PR13349. Patch by Jose Fonseca. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@160543 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86CodeEmitter.cpp
|
5aba78bd8056dc407bcbce4080ffcd12b13c7342 |
|
12-Jul-2012 |
Craig Topper <craig.topper@gmail.com> |
Update GATHER instructions to support 2 read-write operands. Patch from myself and Manman Ren. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@160110 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86CodeEmitter.cpp
|
177cf1e1a3685209ab805f82897902a8d2b61661 |
|
31-May-2012 |
Elena Demikhovsky <elena.demikhovsky@intel.com> |
Added FMA3 Intel instructions. I disabled FMA3 autodetection, since the result may differ from expected for some benchmarks. I added tests for GodeGen and intrinsics. I did not change llvm.fma.f32/64 - it may be done later. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@157737 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86CodeEmitter.cpp
|
77fc4b297aadf842c234f9de478226f6f71beee5 |
|
30-May-2012 |
Benjamin Kramer <benny.kra@googlemail.com> |
Port support for SSE4a extrq/insertq to the old jit code emitter. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@157685 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86CodeEmitter.cpp
|
82dd67a1c8edfacac45e31a868ef074248bccb12 |
|
23-May-2012 |
Craig Topper <craig.topper@gmail.com> |
Fix indentation of wrapped line for readability. No functional change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@157309 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86CodeEmitter.cpp
|
5084c6b0a29ed409092bd31cd75849312a73bee5 |
|
19-May-2012 |
Craig Topper <craig.topper@gmail.com> |
Tidy up some spacing and inconsistent use of pre/post increment. No functional change intended. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@157122 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86CodeEmitter.cpp
|
769237bb92515cc8680538f95dfb2eef76ecadd2 |
|
19-May-2012 |
Craig Topper <craig.topper@gmail.com> |
Copy some AVX support from MCJIT to JIT. Maybe will fix PR12748. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@157109 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86CodeEmitter.cpp
|
dca40aa911675be26e41fb655b9c2e9e2d61f082 |
|
02-May-2012 |
Jakub Staszak <kubastaszak@gmail.com> |
Remove unneeded break. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@155959 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86CodeEmitter.cpp
|
bf1486057239895198b3e8fdfa994a6daedd3579 |
|
02-May-2012 |
Jakub Staszak <kubastaszak@gmail.com> |
Remove trailing spaces. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@155956 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86CodeEmitter.cpp
|
ff72e74d34197cd8775ed32c6e06054b936a1cad |
|
01-May-2012 |
Craig Topper <craig.topper@gmail.com> |
Attempt to handle MRMInitReg in emitVEXOpcodePrefix. Hopefully fixes PR12711. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@155896 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86CodeEmitter.cpp
|
6942f706aad24c45b55d30256250e4ae472b3b07 |
|
30-Apr-2012 |
Pete Cooper <peter_cooper@apple.com> |
Copied all the VEX prefix encoding code from X86MCCodeEmitter to the x86 JIT emitter. Needs some major refactoring as these two code emitters are almost identical git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@155810 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86CodeEmitter.cpp
|
31d157ae1ac2cd9c787dc3c1d28e64c682803844 |
|
18-Feb-2012 |
Jia Liu <proljc@gmail.com> |
Emacs-tag and some comment fix for all ARM, CellSPU, Hexagon, MBlaze, MSP430, PPC, PTX, Sparc, X86, XCore. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150878 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86CodeEmitter.cpp
|
527a08b253795cf09de41c289c9dc071f00b1d4a |
|
16-Feb-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Use the same CALL instructions for Windows as for everything else. The different calling conventions and call-preserved registers are represented with regmask operands that are added dynamically. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150708 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86CodeEmitter.cpp
|
5a96b3dad2f634c9081c8b2b6c2575441dc5a2bd |
|
07-Dec-2011 |
Evan Cheng <evan.cheng@apple.com> |
Add bundle aware API for querying instruction properties and switch the code generator to it. For non-bundle instructions, these behave exactly the same as the MC layer API. For properties like mayLoad / mayStore, look into the bundle and if any of the bundled instructions has the property it would return true. For properties like isPredicable, only return true if *all* of the bundled instructions have the property. For properties like canFoldAsLoad, isCompare, conservatively return false for bundles. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@146026 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86CodeEmitter.cpp
|
3f3f6b067c62d512e4e0b0c54bfc331bd34be338 |
|
24-Oct-2011 |
Eli Friedman <eli.friedman@gmail.com> |
Add support to the old JIT for acquire/release loads and stores on x86. PR11207. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@142841 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86CodeEmitter.cpp
|
75485d6746f8b5b23c17cf6d2364e7e1e0705992 |
|
23-Oct-2011 |
Craig Topper <craig.topper@gmail.com> |
Add X86 RORX instruction git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@142741 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86CodeEmitter.cpp
|
ee62e4f6d192ee31d1ad9dd0ba0c41db6663d3c7 |
|
16-Oct-2011 |
Craig Topper <craig.topper@gmail.com> |
Add X86 PEXTR and PDEP instructions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@142141 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86CodeEmitter.cpp
|
1c36ba50ac7fa2c3e531b3f48407fb2eee93e5ed |
|
28-Aug-2011 |
Nicolas Geoffray <nicolas.geoffray@lip6.fr> |
Remove premature previous commit. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@138725 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86CodeEmitter.cpp
|
c98da24bed617b9264db8df5f378cccd2a95e792 |
|
28-Aug-2011 |
Nicolas Geoffray <nicolas.geoffray@lip6.fr> |
Encoding of instructions referencing segments has changed. Do what X86MCCodeEmitter does. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@138723 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86CodeEmitter.cpp
|
a44defeb2208376ca3113ffdddc391570ba865b8 |
|
27-Jul-2011 |
Jeffrey Yasskin <jyasskin@google.com> |
Explicitly cast narrowing conversions inside {}s that will become errors in C++0x. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@136211 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86CodeEmitter.cpp
|
8c3fee59038d8fd98db2a01b6a309a8941a16a3f |
|
25-Jul-2011 |
Evan Cheng <evan.cheng@apple.com> |
Refactor X86 target to separate MC code from Target code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135930 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86CodeEmitter.cpp
|
0e6a052331f674dd70e28af41f654a7874405eab |
|
18-Jul-2011 |
Evan Cheng <evan.cheng@apple.com> |
Sink getDwarfRegNum, getLLVMRegNum, getSEHRegNum from TargetRegisterInfo down to MCRegisterInfo. Also initialize the mapping at construction time. This patch eliminate TargetRegisterInfo from TargetAsmInfo. It's another step towards fixing the layering violation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135424 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86CodeEmitter.cpp
|
e837dead3c8dc3445ef6a0e2322179c57e264a13 |
|
28-Jun-2011 |
Evan Cheng <evan.cheng@apple.com> |
- Rename TargetInstrDesc, TargetOperandInfo to MCInstrDesc and MCOperandInfo and sink them into MC layer. - Added MCInstrInfo, which captures the tablegen generated static data. Chang TargetInstrInfo so it's based off MCInstrInfo. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@134021 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86CodeEmitter.cpp
|
4a8ac8de1ddfeaadb9ff13ce361bfc6435f18028 |
|
04-Apr-2011 |
Joerg Sonnenberger <joerg@bec.de> |
Add support for the VIA PadLock instructions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@128826 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86CodeEmitter.cpp
|
0d9a0865c61322b31232af10e68ac73db4377994 |
|
09-Oct-2010 |
Chris Lattner <sabre@nondot.org> |
add jit support for the new psuedo instructions I added for the add/or xform. The JIT isn't mcized yet, boo. This fixes Olden/voronoi, bh and a ton of other stuff that uses the jit. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116125 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86CodeEmitter.cpp
|
8dae787db4ad6d847aceb7c4b28516649ab78036 |
|
09-Oct-2010 |
Chris Lattner <sabre@nondot.org> |
machine a mutable machineinstr down into emitInstruction. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116124 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86CodeEmitter.cpp
|
11bc1652c9447d85204dc6f7c878b9c95e668a96 |
|
23-Aug-2010 |
Gabor Greif <ggreif@gmail.com> |
tyops git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111835 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86CodeEmitter.cpp
|
3a1e54a6b97f81d61d5de38d220b2b75746ae481 |
|
17-Aug-2010 |
Anton Korobeynikov <asl@math.spbu.ru> |
More fixes for win64: - Do not clobber al during variadic calls, this is AMD64 ABI-only feature - Emit wincall64, where necessary Patch by Cameron Esfahani! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111289 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86CodeEmitter.cpp
|
63f02ac34951958019bcbc54ae5fb0f4b12118f3 |
|
13-Aug-2010 |
Eric Christopher <echristo@apple.com> |
Revert last patch and r110954 as I meant to. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111001 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86CodeEmitter.cpp
|
4404c00db6322000d8d80d08d523cca0dc6fffad |
|
13-Aug-2010 |
Eric Christopher <echristo@apple.com> |
Revert r110954 for now, pseudo instructions can't make it through to the JIT. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111000 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86CodeEmitter.cpp
|
90c579de5a383cee278acc3f7e7b9d0a656e6a35 |
|
06-Aug-2010 |
Owen Anderson <resistor@mac.com> |
Reapply r110396, with fixes to appease the Linux buildbot gods. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110460 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86CodeEmitter.cpp
|
1f74590e9d1b9cf0f1f81a156efea73f76546e05 |
|
06-Aug-2010 |
Owen Anderson <resistor@mac.com> |
Revert r110396 to fix buildbots. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110410 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86CodeEmitter.cpp
|
9ccaf53ada99c63737547c0235baeb8454b04e80 |
|
06-Aug-2010 |
Owen Anderson <resistor@mac.com> |
Don't use PassInfo* as a type identifier for passes. Instead, use the address of the static ID member as the sole unique type identifier. Clean up APIs related to this change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110396 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86CodeEmitter.cpp
|
505656c6a2be361b9ae8ff230020fdea38886a7e |
|
05-Aug-2010 |
Eric Christopher <echristo@apple.com> |
Handle the memory barrier pseudo that goes to nothing for the JIT. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110371 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86CodeEmitter.cpp
|
456fdaf0cea4bd195eacc9796fedb71b62290cfe |
|
22-Jul-2010 |
Chris Lattner <sabre@nondot.org> |
instead of migrating it to the MC instruction encoder, just rip out the implementation of X86InstrInfo::GetInstSizeInBytes. The code being ripped out just implemented a copy and hacked up version of the (old) instruction encoder, and is buggy and terrible in other ways. Since "GetInstSizeInBytes" is really only there to support the JIT's "NeedsExactSize" hook (which noone is using), just rip out the code. I will rip out the NeedsExactSize hook next. This resolves rdar://7617809 - switch X86InstrInfo::GetInstSizeInBytes to use X86MCCodeEmitter git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109149 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86CodeEmitter.cpp
|
7431beaba2a01c3fe299c861b2ec85cbf1dc81c4 |
|
17-Jul-2010 |
Bill Wendling <isanbard@gmail.com> |
Rename DBG_LABEL PROLOG_LABEL, because it's only used during prolog emission and thus is a much more meaningful name. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108563 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86CodeEmitter.cpp
|
468a2a44e2a2efb5a2cd441205fc78b80edd3844 |
|
16-Jul-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Remove the X86::FP_REG_KILL pseudo-instruction and the X86FloatingPointRegKill pass that inserted it. It is no longer necessary to limit the live ranges of FP registers to a single basic block. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108536 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86CodeEmitter.cpp
|
599b531a960833719f607d66c97871f1f5ad12c0 |
|
09-Jul-2010 |
Chris Lattner <sabre@nondot.org> |
Change LEA to have 5 operands for its memory operand, just like all other instructions, even though a segment is not allowed. This resolves a bunch of gross hacks in the encoder and makes LEA more consistent with the rest of the instruction set. No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107934 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86CodeEmitter.cpp
|
ac0ed5dc082dff9ce359af5422f5b82047b4fe6b |
|
09-Jul-2010 |
Chris Lattner <sabre@nondot.org> |
add some long-overdue enums to refer to the parts of the 5-operand X86 memory operand. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107925 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86CodeEmitter.cpp
|
fe60104ac97f3a8736dcfbfdf9547c7b7cc7b951 |
|
22-Jun-2010 |
Dan Gohman <gohman@apple.com> |
Use pre-increment instead of post-increment when the result is not used. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106542 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86CodeEmitter.cpp
|
a040fffefbc7f653d68154b16b8d3c2ee2a6a639 |
|
21-Apr-2010 |
Bill Wendling <isanbard@gmail.com> |
Handle a displacement location in 64-bit as an RIP-relative displacement. It fixes a bug (<rdar://problem/7880900>) in the JIT. This code wouldn't work: target triple = "x86_64-apple-darwin" define double @func(double %a) { %tmp1 = fmul double %a, 5.000000e-01 ; <double> [#uses=1] ret double %tmp1 } define i32 @main() nounwind { %1 = call double @func(double 4.770000e-04) ; <i64> [#uses=0] ret i32 0 } git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101965 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86CodeEmitter.cpp
|
46510a73e977273ec67747eb34cbdb43f815e451 |
|
15-Apr-2010 |
Dan Gohman <gohman@apple.com> |
Add const qualifiers to CodeGen's use of LLVM IR constructs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101334 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86CodeEmitter.cpp
|
75361b69f3f327842b9dad69fa7f28ae3b688412 |
|
08-Apr-2010 |
Chris Lattner <sabre@nondot.org> |
rename llvm::llvm_report_error -> llvm::report_fatal_error git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100709 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86CodeEmitter.cpp
|
6ffcccab5191ef1dcde876800c24a1f58b3b7ad8 |
|
14-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
change the DBG_LABEL MachineInstr to always be created with an MCSymbol instead of an immediate. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98481 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86CodeEmitter.cpp
|
aba9bcb9b60edbad3646b2f3088c120d06549cc7 |
|
14-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
switch GC_LABEL to use an MCSymbol operand instead of a label ID operand. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98474 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86CodeEmitter.cpp
|
7561d480953e0a2faa4af9be0a00b1180097c4bd |
|
14-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
change the LabelSDNode to be EHLabelSDNode and make it hold an MCSymbol. Make the EH_LABEL MachineInstr hold its label with an MCSymbol instead of ID. Fix a bug in MMI.cpp which would return labels named "Label4" instead of "label4". git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98463 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86CodeEmitter.cpp
|
1611273351d75b5cbe2a67485bb9831d5916fe26 |
|
14-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
change EH related stuff (other than EH_LABEL) to use MCSymbol instead of label ID's. This cleans up and regularizes a bunch of code and makes way for future progress. Unfortunately, this pointed out to me that JITDwarfEmitter.cpp is largely copy and paste from DwarfException/MachineModuleInfo and other places. This is very sad and disturbing. :( One major change here is that TidyLandingPads moved from being called in DwarfException::BeginFunction to being called in DwarfException::EndFunction. There should not be any functionality change from doing this, but I'm not an EH expert. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98459 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86CodeEmitter.cpp
|
f068304b1f9205b49aa4bef75e669f750906b84f |
|
13-Feb-2010 |
Chris Lattner <sabre@nondot.org> |
rip out the 'heinous' x86 MCCodeEmitter implementation. We still have the templated X86 JIT emitter, *and* the almost-copy in X86InstrInfo for getting instruction sizes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96059 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86CodeEmitter.cpp
|
eaca5fa8e6a2cb0f84a635da5f1f0f670776d0a5 |
|
13-Feb-2010 |
Chris Lattner <sabre@nondot.org> |
Remove special cases for [LM]FENCE, MONITOR and MWAIT from encoder and decoder by using new MRM_ forms. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96048 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86CodeEmitter.cpp
|
86020e46289643de2f8c7603b550ffc8b6aff376 |
|
13-Feb-2010 |
Chris Lattner <sabre@nondot.org> |
give MCCodeEmitters access to the current MCContext. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96038 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86CodeEmitter.cpp
|
0d8db8e0a8492ab2d4bef725ec61b519471b97ec |
|
12-Feb-2010 |
Chris Lattner <sabre@nondot.org> |
add a bunch of mod/rm encoding types for fixed mod/rm bytes. This will work better for the disassembler for modeling things like lfence/monitor/vmcall etc. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95960 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86CodeEmitter.cpp
|
ecfb3c3d665480e04c051b4b229607768612d28d |
|
11-Feb-2010 |
Chris Lattner <sabre@nondot.org> |
dont' call getX86RegNum on X86::RIP, it doesn't like that. This fixes the remaining x86-64 jit failures afaik. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95867 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86CodeEmitter.cpp
|
5526b699014b0b58e08d7d43e28084589eda26f2 |
|
11-Feb-2010 |
Chris Lattner <sabre@nondot.org> |
fix a really nasty bug I introduced in r95693: r12 (and r12d, r12b, etc) also encodes to a R/M value of 4, which is just as illegal as ESP/RSP for the non-sib version an address. This fixes x86-64 jit miscompilations of a bunch of programs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95866 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86CodeEmitter.cpp
|
5d5a1e13a129e18ee6031fe6354acd2ab4d39f37 |
|
10-Feb-2010 |
Daniel Dunbar <daniel@zuster.org> |
MC: Switch MCFixup to just hold an MCExpr pointer instead of index into the MCInst it came from. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95767 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86CodeEmitter.cpp
|
869fe12cc0769ab5005498bab942e85a6f5e3798 |
|
10-Feb-2010 |
Daniel Dunbar <daniel@zuster.org> |
MC/X86: Add a dummy implementation of MCFixup generation for hacky X86 MCCodeEmitter. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95709 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86CodeEmitter.cpp
|
73c557458c0e28899f37c557bcaf36c2b6701260 |
|
09-Feb-2010 |
Daniel Dunbar <daniel@zuster.org> |
MC: First cut at MCFixup, for getting fixup/relocation information out of an MCCodeEmitter. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95708 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86CodeEmitter.cpp
|
9e8528fc5cd7426884c1708d921d4608ac3878b7 |
|
09-Feb-2010 |
Chris Lattner <sabre@nondot.org> |
fix X86 encoder to output [disp] only addresses with no SIB byte in X86-32 mode. This is still required in x86-64 mode to avoid forming [disp+rip] encoding. Rewrite the SIB byte decision logic to be actually understandable. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95693 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86CodeEmitter.cpp
|
32f9a2c54e6fbb980146c8c92894bed22cd67610 |
|
09-Feb-2010 |
Chris Lattner <sabre@nondot.org> |
revert r95689: getX86RegNum(BaseReg) != N86::ESP is a confusing idiom to check for ESP or RSP. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95690 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86CodeEmitter.cpp
|
203efab2a564349207061cb9817e5e60c66db6cc |
|
09-Feb-2010 |
Chris Lattner <sabre@nondot.org> |
simplify. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95689 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86CodeEmitter.cpp
|
518bb53485df640d7b7e3f6b0544099020c42aa7 |
|
09-Feb-2010 |
Chris Lattner <sabre@nondot.org> |
move target-independent opcodes out of TargetInstrInfo into TargetOpcodes.h. #include the new TargetOpcodes.h into MachineInstr. Add new inline accessors (like isPHI()) to MachineInstr, and start using them throughout the codebase. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95687 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86CodeEmitter.cpp
|
00cb3fe786855ce6545234bc3430223eb9272206 |
|
05-Feb-2010 |
Chris Lattner <sabre@nondot.org> |
wire up 64-bit MCCodeEmitter. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95438 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86CodeEmitter.cpp
|
74a2151392a08e202f497ece7a3129663526d431 |
|
05-Feb-2010 |
Chris Lattner <sabre@nondot.org> |
move functions for decoding X86II values into the X86II namespace. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95410 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86CodeEmitter.cpp
|
a3a0db01217efc6403d90eec2a6ceb919f5031bc |
|
05-Feb-2010 |
Chris Lattner <sabre@nondot.org> |
change getSizeOfImm and getBaseOpcodeFor to just take TSFlags directly instead of a TargetInstrDesc. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95405 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86CodeEmitter.cpp
|
28249d98e195f7e04709b959e9f8ffe0d8080bf2 |
|
05-Feb-2010 |
Chris Lattner <sabre@nondot.org> |
Add a few more encodings, we can now encode all of: pushl %ebp movl %esp, %ebp movl $42, %eax popl %ebp ret git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95344 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86CodeEmitter.cpp
|
85bb54f96421461aaafcde83b6302530179337e9 |
|
04-Feb-2010 |
Evan Phoenix <evan@fallingsnow.net> |
Disable external stubs for X86-32 and X86-64 Instruction selection for X86 now can choose an instruction sequence that will fit any address of any symbol, no matter the pointer width. X86-64 uses a mov+call-via-reg sequence for this. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95323 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86CodeEmitter.cpp
|
1e80f403e225a72016581e34b05dca9b5ebd9445 |
|
03-Feb-2010 |
Chris Lattner <sabre@nondot.org> |
enhance new encoder to support prefixes + RawFrm instructions with no operands. It can now handle define void @test2() nounwind { ret void } git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95261 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86CodeEmitter.cpp
|
457624792803e26136889b8cf17e8aa7b84e58b4 |
|
03-Feb-2010 |
Chris Lattner <sabre@nondot.org> |
stub out a new X86 encoder, which can be tried with -enable-new-x86-encoder until its stable. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95256 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86CodeEmitter.cpp
|
ce79a25980da3279f05adf324d9d6adefb9c979c |
|
03-Feb-2010 |
Chris Lattner <sabre@nondot.org> |
rename createX86MCCodeEmitter to more accurately reflect what it creates. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95254 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86CodeEmitter.cpp
|
7f89fdae34a11f8b0b3e0ee1de3f2f6d317f38c4 |
|
02-Feb-2010 |
Chris Lattner <sabre@nondot.org> |
remove dead code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95144 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86CodeEmitter.cpp
|
1945e179e1ece0a521d394f5f9ae9706f0ec4f90 |
|
02-Feb-2010 |
Daniel Dunbar <daniel@zuster.org> |
MCCodeEmitter/X86: Handle tied registers better when converting MCInst -> MCMachineInstr. This also fixes handling of tied registers for MRMSrcMem instructions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95136 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86CodeEmitter.cpp
|
b84822fb7b64977c16e97b870891da1d6c9736fe |
|
26-Jan-2010 |
Chris Lattner <sabre@nondot.org> |
make MachineFunction keep track of its ID and make MachineFunctionAnalysis dole them out, instead of having AsmPrinter do both. Have the AsmPrinter::SetupMachineFunction method set the 'AsmPrinter::MF' variable. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94509 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86CodeEmitter.cpp
|
c719d5f6216270fb29e880669d0351e8316d3577 |
|
05-Jan-2010 |
David Greene <greened@obbligato.org> |
Change errs() to dbgs(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92644 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86CodeEmitter.cpp
|
735afe14eea8049bf69210ce8a3512e391fc643f |
|
24-Nov-2009 |
Dan Gohman <gohman@apple.com> |
Remove ISD::DEBUG_LOC and ISD::DBG_LABEL, which are no longer used. Note that "hasDotLocAndDotFile"-style debug info was already broken; people wanting this functionality should implement it in the AsmPrinter/DwarfWriter code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89711 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86CodeEmitter.cpp
|
d1ba06bf131a9d217426529d2e28af1f2eeed47a |
|
16-Nov-2009 |
Jeffrey Yasskin <jyasskin@google.com> |
Make X86-64 in the Large model always emit 64-bit calls. The large code model is documented at http://www.x86-64.org/documentation/abi.pdf and says that calls should assume their target doesn't live within the 32-bit pc-relative offset that fits in the call instruction. To do this, we turn off the global-address->target-global-address conversion in X86TargetLowering::LowerCall(). The first attempt at this broke the lazy JIT because it can separate the movabs(imm->reg) from the actual call instruction. The lazy JIT receives the address of the movabs as a relocation and needs to record the return address from the call; and then when that call happens, it needs to patch the movabs with the newly-compiled target. We could thread the call instruction into the relocation and record the movabs<->call mapping explicitly, but that seems to require at least as much new complication in the code generator as this change. To fix this, we make lazy functions _always_ go through a call stub. You'd think we'd only have to force lazy calls through a stub on difficult platforms, but that turns out to break indirect calls through a function pointer. The right fix for that is to distinguish between calls and address-of operations on uncompiled functions, but that's complex enough to leave for someone else to do. Another attempt at this defined a new CALL64i pseudo-instruction, which expanded to a 2-instruction sequence in the assembly output and was special-cased in the X86CodeEmitter's emitInstruction() function. That broke indirect calls in the same way as above. This patch also removes a hack forcing Darwin to the small code model. Without far-call-stubs, the small code model requires things of the JITMemoryManager that the DefaultJITMemoryManager can't provide. Thanks to echristo for lots of testing! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@88984 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86CodeEmitter.cpp
|
2d274412ed9aab277e070690c574714ec544cf94 |
|
07-Nov-2009 |
Jeffrey Yasskin <jyasskin@google.com> |
Make the need-stub variables accurate and consistent. In the case of MachineRelocations, "stub" always refers to a far-call stub or a load-a-faraway-global stub, so this patch adds "Far" to the term. (Other stubs are used for lazy compilation and dlsym address replacement.) The variable was also inconsistent between the positive and negative sense, and the positive sense ("NeedStub") was more demanding than is accurate (since a nearby-enough function can be called directly even if the platform often requires a stub). Since the negative sense causes double-negatives, I switched to "MayNeedFarStub" globally. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86363 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86CodeEmitter.cpp
|
1995051395569397c1c2aa54177ae3b8535e53d8 |
|
27-Oct-2009 |
Chris Lattner <sabre@nondot.org> |
apparently the X86 JIT isn't fully contextized, it is still using getGlobalContext() :( git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85252 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86CodeEmitter.cpp
|
f5a86f45e75ec744c203270ffa03659eb0a220c1 |
|
25-Oct-2009 |
Nick Lewycky <nicholas@mxc.ca> |
Remove includes of Support/Compiler.h that are no longer needed after the VISIBILITY_HIDDEN removal. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85043 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86CodeEmitter.cpp
|
6726b6d75a8b679068a58cb954ba97cf9d1690ba |
|
25-Oct-2009 |
Nick Lewycky <nicholas@mxc.ca> |
Remove VISIBILITY_HIDDEN from class/struct found inside anonymous namespaces. Chris claims we should never have visibility_hidden inside any .cpp file but that's still not true even after this commit. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85042 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86CodeEmitter.cpp
|
f5e16139f28d650536024280a16dcf73513baf46 |
|
12-Oct-2009 |
Chris Lattner <sabre@nondot.org> |
Fix PR5087, patch by Jakub Staszak! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83822 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86CodeEmitter.cpp
|
af0e2726835e096e32c30c1b88cc7a6232a6ef69 |
|
06-Oct-2009 |
Devang Patel <dpatel@apple.com> |
Update processDebugLoc() so that it can be used to process debug info before and after printing an instruction. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83363 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86CodeEmitter.cpp
|
26207e5bf1123a793bd9b38bcda2f569a6b45ef2 |
|
28-Sep-2009 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Introduce the TargetInstrInfo::KILL machine instruction and get rid of the unused DECLARE instruction. KILL is not yet used anywhere, it will replace TargetInstrInfo::IMPLICIT_DEF in the places where IMPLICIT_DEF is just used to alter liveness of physical registers. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83006 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86CodeEmitter.cpp
|
de782a232160a9535bf79f4e06bd96125092982f |
|
08-Sep-2009 |
Nicolas Geoffray <nicolas.geoffray@lip6.fr> |
Also emit a label for TargetInstrInfo::GC_LABEL. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81206 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86CodeEmitter.cpp
|
5c5ce5cef4a9f09f5b25e08df1e0dd6c79908c0f |
|
03-Sep-2009 |
Chris Lattner <sabre@nondot.org> |
just use dump() git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80889 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86CodeEmitter.cpp
|
0378b72609c1a257fa1666d7b4a546b423daadfb |
|
02-Sep-2009 |
Daniel Dunbar <daniel@zuster.org> |
Simplify. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80729 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86CodeEmitter.cpp
|
6b677b33c0dd0e81dd67f62ee7028049ff71cf7d |
|
02-Sep-2009 |
Daniel Dunbar <daniel@zuster.org> |
Fix what I believe is a copy-n-pasto introduced in r78129. - Bruno, please check!! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80728 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86CodeEmitter.cpp
|
4e8d5fe51021e32450b35c7003f185dd1f56e11a |
|
02-Sep-2009 |
Daniel Dunbar <daniel@zuster.org> |
X86/Encoding: Support ExternalSymbol operands in emitDisplacementField (for consistency). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80727 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86CodeEmitter.cpp
|
8c2eebe4074ef218b30d94358f6b2e45c079605c |
|
31-Aug-2009 |
Daniel Dunbar <daniel@zuster.org> |
llvm-mc: Switch MCInst to storing an MCExpr* instead of an MCValue. Also, use MCInst::print instead of custom code in MCAsmPrinter. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80575 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86CodeEmitter.cpp
|
df65eafe5ef8bd4db97d1574f4b3823df2fb97bc |
|
30-Aug-2009 |
Daniel Dunbar <daniel@zuster.org> |
llvm-mc/X86: Encode constant MCValue's correctly. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80485 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86CodeEmitter.cpp
|
7168a7dc6dd3b6a502372f34c2ed4ed91c85c090 |
|
27-Aug-2009 |
Daniel Dunbar <daniel@zuster.org> |
llvm-mc/X86: Implement single instruction encoding interface for MC. - Note, this is a gigantic hack, with the sole purpose of unblocking further work on the assembler (its also possible to test the mathcer more completely now). - Despite being a hack, its actually good enough to work over all of 403.gcc (although some encodings are probably incorrect). This is a testament to the beauty of X86's MachineInstr, no doubt! ;) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80234 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86CodeEmitter.cpp
|
24f20e083280d979e8fa1bc88959ae9e8339ee99 |
|
22-Aug-2009 |
Devang Patel <dpatel@apple.com> |
Record variable debug info at ISel time directly. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79742 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86CodeEmitter.cpp
|
f5af556c18fa44f073367e0ce7093df507810ada |
|
16-Aug-2009 |
Chris Lattner <sabre@nondot.org> |
more formatting improvements, no functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79167 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86CodeEmitter.cpp
|
d8638babf9936a47ce3450bbb184cf42d13af6d5 |
|
16-Aug-2009 |
Chris Lattner <sabre@nondot.org> |
code formatting improvements, no functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79165 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86CodeEmitter.cpp
|
b4dc13cab7ef894d3bb17657fa993b9f09af476b |
|
08-Aug-2009 |
Eric Christopher <echristo@apple.com> |
Add crc32 instruction and intrinsics. Add a new class of prefix bytes for F2 0F 38 and propagate. Add a FIXME for a set of possibilities which correspond to intrinsics already used. New test. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78508 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86CodeEmitter.cpp
|
71435a3975789de81a42e4a12d9fb29b28a46b81 |
|
08-Aug-2009 |
Bruno Cardoso Lopes <bruno.cardoso@gmail.com> |
Use reloc_absolute_word_sext relocation for X86::MOV64(ri/mi)32 instructions, since they are in 64 bit mode with i64immSExt32 imms. JIT is not affected since it handles both word absolute relocations in the same way git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78479 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86CodeEmitter.cpp
|
e55fef36a93badf6c4925ea2455a1ca6b361357e |
|
05-Aug-2009 |
Bruno Cardoso Lopes <bruno.cardoso@gmail.com> |
1) Proper emit displacements for x86, using absolute relocations where necessary for ELF to work. 2) RIP addressing: Use SIB bytes for absolute relocations where RegBase=0, IndexReg=0. 3) The JIT can get the real address of cstpools and jmptables during code emission, fix that for object code emission git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78129 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86CodeEmitter.cpp
|
0ea8bf3590d7553179f95e4b0fc47c02f066fcfb |
|
03-Aug-2009 |
Bill Wendling <isanbard@gmail.com> |
- s/DOUT/DEBUG(errs()/g - Tidy up some headers. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77929 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86CodeEmitter.cpp
|
675fb65bf436b398f2ab3861b0fa05e3028a83d1 |
|
01-Aug-2009 |
Dan Gohman <gohman@apple.com> |
Use setPreservesAll in X86CodeEmitter. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77755 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86CodeEmitter.cpp
|
ce63ffb52f249b62cdf2d250c128007b13f27e71 |
|
25-Jul-2009 |
Daniel Dunbar <daniel@zuster.org> |
More migration to raw_ostream, the water has dried up around the iostream hole. - Some clients which used DOUT have moved to DEBUG. We are deprecating the "magic" DOUT behavior which avoided calling printing functions when the statement was disabled. In addition to being unnecessary magic, it had the downside of leaving code in -Asserts builds, and of hiding potentially unnecessary computations. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77019 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86CodeEmitter.cpp
|
32360a7e21a4454aa7014992213823fb4319905a |
|
16-Jul-2009 |
Jeffrey Yasskin <jyasskin@google.com> |
Add line numbers to OProfile. To do this, I added a processDebugLoc() call to the MachineCodeEmitter interface and made copying the start line of a function not conditional on whether we're emitting Dwarf debug information. I'll propagate the processDebugLoc() calls to the non-X86 targets in a followup patch. In the long run, it'll probably be better to gather this information through the DwarfWriter, but the DwarfWriter currently depends on the AsmPrinter and TargetAsmInfo, and fixing that would be out of the way for this patch. There's a bug in OProfile 0.9.4 that makes it ignore line numbers for addresses above 4G, and a patch fixing it at http://thread.gmane.org/gmane.linux.oprofile/7634 Sample output: $ sudo opcontrol --reset; sudo opcontrol --start-daemon; sudo opcontrol --start; `pwd`/Debug/bin/lli fib.bc; sudo opcontrol --stop Signalling daemon... done Profiler running. fib(40) == 165580141 Stopping profiling. $ opreport -g -d -l `pwd`/Debug/bin/lli|head -60 Overflow stats not available CPU: Core 2, speed 1998 MHz (estimated) Counted CPU_CLK_UNHALTED events (Clock cycles when not halted) with a unit mask of 0x00 (Unhalted core cycles) count 100000 vma samples % linenr info image name symbol name 00007f67a30370b0 25489 61.2554 fib.c:24 10946.jo fib_left 00007f67a30370b0 1634 6.4106 fib.c:24 00007f67a30370b1 83 0.3256 fib.c:24 00007f67a30370b9 1997 7.8348 fib.c:24 00007f67a30370c6 2080 8.1604 fib.c:27 00007f67a30370c8 988 3.8762 fib.c:27 00007f67a30370cd 1315 5.1591 fib.c:27 00007f67a30370cf 251 0.9847 fib.c:27 00007f67a30370d3 1191 4.6726 fib.c:27 00007f67a30370d6 975 3.8252 fib.c:27 00007f67a30370db 1010 3.9625 fib.c:27 00007f67a30370dd 242 0.9494 fib.c:27 00007f67a30370e1 2782 10.9145 fib.c:28 00007f67a30370e5 3768 14.7828 fib.c:28 00007f67a30370eb 615 2.4128 (no location information) 00007f67a30370f3 6558 25.7287 (no location information) 00007f67a3037100 15603 37.4973 fib.c:29 10946.jo fib_right 00007f67a3037100 1646 10.5493 fib.c:29 00007f67a3037101 45 0.2884 fib.c:29 00007f67a3037109 2372 15.2022 fib.c:29 00007f67a3037116 2234 14.3178 fib.c:32 00007f67a3037118 612 3.9223 fib.c:32 00007f67a303711d 622 3.9864 fib.c:32 00007f67a303711f 385 2.4675 fib.c:32 00007f67a3037123 404 2.5892 fib.c:32 00007f67a3037126 634 4.0633 fib.c:32 00007f67a303712b 870 5.5759 fib.c:32 00007f67a303712d 62 0.3974 fib.c:32 00007f67a3037131 1848 11.8439 fib.c:33 00007f67a3037135 2840 18.2016 fib.c:33 00007f67a303713a 1 0.0064 fib.c:33 00007f67a303713b 1023 6.5564 (no location information) 00007f67a3037143 5 0.0320 (no location information) 000000000080c1e4 15 0.0360 MachineOperand.h:150 lli llvm::MachineOperand::isReg() const 000000000080c1e4 6 40.0000 MachineOperand.h:150 000000000080c1ec 2 13.3333 MachineOperand.h:150 ... git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76102 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86CodeEmitter.cpp
|
f6fbad15f7f5c49e1f3b2b1b62f4614fd1146675 |
|
14-Jul-2009 |
Bruno Cardoso Lopes <bruno.cardoso@gmail.com> |
Use the right relocation type for X86::MOV64ri64i32 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75687 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86CodeEmitter.cpp
|
c23197a26f34f559ea9797de51e187087c039c42 |
|
14-Jul-2009 |
Torok Edwin <edwintorok@gmail.com> |
llvm_unreachable->llvm_unreachable(0), LLVM_UNREACHABLE->llvm_unreachable. This adds location info for all llvm_unreachable calls (which is a macro now) in !NDEBUG builds. In NDEBUG builds location info and the message is off (it only prints "UREACHABLE executed"). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75640 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86CodeEmitter.cpp
|
c25e7581b9b8088910da31702d4ca21c4734c6d7 |
|
11-Jul-2009 |
Torok Edwin <edwintorok@gmail.com> |
assert(0) -> LLVM_UNREACHABLE. Make llvm_unreachable take an optional string, thus moving the cerr<< out of line. LLVM_UNREACHABLE is now a simple wrapper that makes the message go away for NDEBUG builds. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75379 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86CodeEmitter.cpp
|
3b6b36d6f54e780a2947cb1b9efe4eed7c40dc11 |
|
10-Jul-2009 |
Chris Lattner <sabre@nondot.org> |
change isGlobalStubReference to take target flags instead of a MachineOperand. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75236 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86CodeEmitter.cpp
|
07406346ebbf8a958a956eb05c1e04faedfe1e63 |
|
10-Jul-2009 |
Chris Lattner <sabre@nondot.org> |
convert some late code (called by regalloc and code emission) to use isGlobalStubReference instead of GVRequiresExtraLoad (which should really be part of isel). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75234 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86CodeEmitter.cpp
|
ed0dca6a5dfa26e63c5636eb092640159182df89 |
|
10-Jul-2009 |
Chris Lattner <sabre@nondot.org> |
GVRequiresExtraLoad is now never used for calls, simplify it based on this. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75232 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86CodeEmitter.cpp
|
8a537121cbb3087294ca9d3891b8e2eef53a54ab |
|
10-Jul-2009 |
Chris Lattner <sabre@nondot.org> |
convert a helper method to be a static function instead of a template. Also convert it to take a MachineOperand instead of a GV* git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75227 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86CodeEmitter.cpp
|
dac237e18209b697a8ba122d0ddd9cad4dfba1f8 |
|
08-Jul-2009 |
Torok Edwin <edwintorok@gmail.com> |
Implement changes from Chris's feedback. Finish converting lib/Target. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75043 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86CodeEmitter.cpp
|
ab7c09b6b6f4516a631fd6788918c237c83939af |
|
08-Jul-2009 |
Torok Edwin <edwintorok@gmail.com> |
Start converting to new error handling API. cerr+abort -> llvm_report_error assert(0)+abort -> LLVM_UNREACHABLE (assert(0)+llvm_unreachable-> abort() included) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75018 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86CodeEmitter.cpp
|
ac57e6e498abccb117e0d61c2fa0f733845e50cb |
|
06-Jul-2009 |
Bruno Cardoso Lopes <bruno.cardoso@gmail.com> |
Add the Object Code Emitter class. Original patch by Aaron Gray, I did some cleanup, removed some #includes and moved Object Code Emitter out-of-line. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74813 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86CodeEmitter.cpp
|
380135cc3e320c74417f66c14407121e07926e3c |
|
27-Jun-2009 |
Chris Lattner <sabre@nondot.org> |
fix a bunch of failures in the X86-64 JIT by tolerating RIP as a base register. We just ignore it for now. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74374 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86CodeEmitter.cpp
|
434dd4fd94f5f248492c675e4285e7d67342d4c4 |
|
01-Jun-2009 |
Bruno Cardoso Lopes <bruno.cardoso@gmail.com> |
Fix new CodeEmitter stuff to follow LLVM codying style. Patch by Aaron Gray git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72697 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86CodeEmitter.cpp
|
a3f99f90338d89354384ca25f53ca4450a1a9d18 |
|
30-May-2009 |
Bruno Cardoso Lopes <bruno.cardoso@gmail.com> |
First patch in the direction of splitting MachineCodeEmitter in two subclasses: JITCodeEmitter and ObjectCodeEmitter. No functional changes yet. Patch by Aaron Gray git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72631 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86CodeEmitter.cpp
|
2265ba071762b461ed1e65ebd73f596a98208f60 |
|
29-May-2009 |
Bill Wendling <isanbard@gmail.com> |
The MONITOR and MWAIT instructions have insufficient information for decoding. Essentially, they both map to the same column in the "opcode extensions for one- and two-byte opcodes" table in the x86 manual. The RawFrm complicates decoding this. Instead, use opcode 0x01, prefix 0x01, and form MRM1r. Then have the code emitter special case these, a la [SML]FENCE. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72556 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86CodeEmitter.cpp
|
6ed34918ebc2b7bcfcc5e5ee42070303b73811fe |
|
12-May-2009 |
Evan Cheng <evan.cheng@apple.com> |
Avoid unneeded SIB byte encoding. Patch by Zoltan Varga. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@71520 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86CodeEmitter.cpp
|
43e91b9c2f242c53dab2cf5813c0f6e208d7f213 |
|
06-May-2009 |
Dale Johannesen <dalej@apple.com> |
Use X86AddrNumOperands instead of magic constant one more place. This fixes a bunch of x86-64 JIT regressions. (Introduced when the value of the magic constant changed in 68645. At the time apparently nobody noticed; failures were hidden in 70343-70439 by an unrelated bug, so showed up again as "new" failures in 70440.) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@71106 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86CodeEmitter.cpp
|
ef1840173c6e7eadaac3e1bcb443088e49501816 |
|
05-May-2009 |
Evan Cheng <evan.cheng@apple.com> |
Revert part of 70929 that has to do with determining whether a SIB byte is needed. It causes a lot of x86_64 JIT failures. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@70986 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86CodeEmitter.cpp
|
b0030ddca469b3372630b0c01c21245ef0027aa0 |
|
05-May-2009 |
Evan Cheng <evan.cheng@apple.com> |
- Avoid the longer SIB encoding on x86_64 when it's not needed. - Synchronize instruction length computation code in X86InstrInfo with code in X86CodeEmitter.cpp Patch by Zoltan Varga. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@70929 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86CodeEmitter.cpp
|
094fad37b90946c91a09eb9270a0dbe800f49d87 |
|
08-Apr-2009 |
Rafael Espindola <rafael.espindola@gmail.com> |
Re-apply 68552. Tested by bootstrapping llvm-gcc and using that to build llvm. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68645 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86CodeEmitter.cpp
|
044b5344c4a97b3c709a05b9c5f9296656477652 |
|
08-Apr-2009 |
Bill Wendling <isanbard@gmail.com> |
Temporarily revert r68552. This was causing a failure in the self-hosting LLVM builds. --- Reverse-merging (from foreign repository) r68552 into '.': U test/CodeGen/X86/tls8.ll U test/CodeGen/X86/tls10.ll U test/CodeGen/X86/tls2.ll U test/CodeGen/X86/tls6.ll U lib/Target/X86/X86Instr64bit.td U lib/Target/X86/X86InstrSSE.td U lib/Target/X86/X86InstrInfo.td U lib/Target/X86/X86RegisterInfo.cpp U lib/Target/X86/X86ISelLowering.cpp U lib/Target/X86/X86CodeEmitter.cpp U lib/Target/X86/X86FastISel.cpp U lib/Target/X86/X86InstrInfo.h U lib/Target/X86/X86ISelDAGToDAG.cpp U lib/Target/X86/AsmPrinter/X86ATTAsmPrinter.cpp U lib/Target/X86/AsmPrinter/X86IntelAsmPrinter.cpp U lib/Target/X86/AsmPrinter/X86ATTAsmPrinter.h U lib/Target/X86/AsmPrinter/X86IntelAsmPrinter.h U lib/Target/X86/X86ISelLowering.h U lib/Target/X86/X86InstrInfo.cpp U lib/Target/X86/X86InstrBuilder.h U lib/Target/X86/X86RegisterInfo.td git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68560 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86CodeEmitter.cpp
|
2a6411bbbdc6a23605fa206e07fc4f99a3d5dff2 |
|
07-Apr-2009 |
Rafael Espindola <rafael.espindola@gmail.com> |
Reduce code duplication on the TLS implementation. This introduces a small regression on the generated code quality in the case we are just computing addresses, not loading values. Will work on it and on X86-64 support. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68552 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86CodeEmitter.cpp
|
da945e3bb2069c1a7194bcd10579a03ff925a031 |
|
28-Mar-2009 |
Rafael Espindola <rafael.espindola@gmail.com> |
Have only one definition of X86AddrNumOperands. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@67949 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86CodeEmitter.cpp
|
b449a68146c7188a20bba11db19229a5cb46938a |
|
28-Mar-2009 |
Rafael Espindola <rafael.espindola@gmail.com> |
Make code a bit less brittle by no hardcoding the number of operands in an address in so many places. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@67945 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86CodeEmitter.cpp
|
a065200eaf71248133470caf03eefea449fff7b4 |
|
12-Mar-2009 |
Evan Cheng <evan.cheng@apple.com> |
Re-apply 66024 with fixes: 1. Fixed indirect call to immediate address assembly. 2. Fixed JIT encoding by making the address pc-relative. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@66803 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86CodeEmitter.cpp
|
5788d1a169db3346a612a13113348d2709bdd15b |
|
10-Dec-2008 |
Evan Cheng <evan.cheng@apple.com> |
Fix MachineCodeEmitter to use uintptr_t instead of intptr_t. This avoids some overflow issues. Patch by Thomas Jablin. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60828 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86CodeEmitter.cpp
|
eda60a8364889a336339571fa4810e439ce895f6 |
|
20-Nov-2008 |
Evan Cheng <evan.cheng@apple.com> |
Eliminate a compile time warning. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59677 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86CodeEmitter.cpp
|
f4b24e2b668542b4e674ed8afa96ba06558cc00e |
|
10-Nov-2008 |
Dan Gohman <gohman@apple.com> |
Fix indentation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59004 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86CodeEmitter.cpp
|
9ed2f80910160bbf8051d91cd74c82d4619885b4 |
|
10-Nov-2008 |
Evan Cheng <evan.cheng@apple.com> |
Rename isGVNonLazyPtr to isIndirectSym to reflect how it will be used. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58949 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86CodeEmitter.cpp
|
c96a8e7df1ffeebc5fb876f5eef380e8547ce14f |
|
05-Nov-2008 |
Evan Cheng <evan.cheng@apple.com> |
Rename isGVLazyPtr to isGVNonLazyPtr relocation. This represents Mac OS X indirect gv reference. Please don't call it lazy. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58746 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86CodeEmitter.cpp
|
fd532d7cd925b89daea1a585c0f344a33e81c7fe |
|
31-Oct-2008 |
Mon P Wang <wangmp@apple.com> |
x86_64 rip-relative and magic mode address git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58528 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86CodeEmitter.cpp
|
b74f370e437de31b53496e86f024b533ee8ec91b |
|
25-Oct-2008 |
Nicolas Geoffray <nicolas.geoffray@lip6.fr> |
Generate code for TLS instructions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58141 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86CodeEmitter.cpp
|
c9f3cc3bdaf1ec134dec1f718e7f2e735b34b17b |
|
24-Oct-2008 |
Dan Gohman <gohman@apple.com> |
Fix constant-offset emission for x86-64 absolute addresses. This fixes a bunch of test-suite JIT failures on x86-64 in -relocation-model=static mode. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58066 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86CodeEmitter.cpp
|
4b299d4ebdf57c56ca336d9aca6f2ad7d8175995 |
|
17-Oct-2008 |
Evan Cheng <evan.cheng@apple.com> |
Fix lfence and mfence encoding. These look like MRM5r and MRM6r instructions except they do not have any operands. The RegModRM byte is encoded with register number 0. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57692 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86CodeEmitter.cpp
|
d21a6305ea758a395435c367e1f561c67b5c6ad1 |
|
12-Oct-2008 |
Anton Korobeynikov <asl@math.spbu.ru> |
Update size of inst correctly with segment override. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57414 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86CodeEmitter.cpp
|
a4bb48adc39eb6ae7a502433397ba3476efc0454 |
|
11-Oct-2008 |
Duncan Sands <baldrick@free.fr> |
Fix comment typo. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57381 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86CodeEmitter.cpp
|
ef93cecd80ebdecb0ea2b2c316370998151308e2 |
|
11-Oct-2008 |
Anton Korobeynikov <asl@math.spbu.ru> |
Add ability to override segment (mostly for code emitter purposes). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57380 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86CodeEmitter.cpp
|
d735b8019b0f297d7c14b55adcd887af24d8e602 |
|
03-Oct-2008 |
Dan Gohman <gohman@apple.com> |
Switch the MachineOperand accessors back to the short names like isReg, etc., from isRegister, etc. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57006 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86CodeEmitter.cpp
|
ae73dc1448d25b02cabc7c64c86c64371453dda8 |
|
04-Sep-2008 |
Dan Gohman <gohman@apple.com> |
Tidy up several unbeseeming casts from pointer to intptr_t. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55779 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86CodeEmitter.cpp
|
62990bafa327cf8d95be19363f636ca60b505a91 |
|
21-Aug-2008 |
Anton Korobeynikov <asl@math.spbu.ru> |
Allow inline asm nodes with empty bodies inside JIT. This unbreaks explicit reg vars inside JIT, which are implemented in such hacky way :) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55128 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86CodeEmitter.cpp
|
3b32a23a905c06318ce549c326d1a1b301bd01ee |
|
21-Aug-2008 |
Bill Wendling <isanbard@gmail.com> |
Clean up whitespace. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55117 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86CodeEmitter.cpp
|
5f777192a0de98e636bc560c3187fbdac3614000 |
|
12-Aug-2008 |
Dale Johannesen <dalej@apple.com> |
Make x86-64 JIT changes Darwin-specific. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54700 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86CodeEmitter.cpp
|
ec867a22b3b3e131187e105b3639bcf5eb101590 |
|
12-Aug-2008 |
Dale Johannesen <dalej@apple.com> |
In the absence of a linker to build the GOT, use the 32-bit non_lazy_ptr mechanism on x86-64 Darwin JIT. Fixes a bunch of last night's failures. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54692 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86CodeEmitter.cpp
|
50dd1d028021bd7fd8bca3f33633ea59577c9d5e |
|
12-Aug-2008 |
Dale Johannesen <dalej@apple.com> |
Some fixes for x86-64 JIT. Make it use small code model, except for external calls; this makes addressing modes PC-relative. Incomplete. The assertion at the top of Emitter::runOnMachineFunction was obviously bogus (always true) so I removed it. If someone knows what the correct test should be to cover all the various targets, please fix. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54656 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86CodeEmitter.cpp
|
4406604047423576e36657c7ede266ca42e79642 |
|
01-Jul-2008 |
Dan Gohman <gohman@apple.com> |
Split ISD::LABEL into ISD::DBG_LABEL and ISD::EH_LABEL, eliminating the need for a flavor operand, and add a new SDNode subclass, LabelSDNode, for use with them to eliminate the need for a label id operand. Change instruction selection to let these label nodes through unmodified instead of creating copies of them. Teach the MachineInstr emitter how to emit a MachineInstr directly from an ISD label node. This avoids the need for allocating SDNodes for the label id and flavor value, as well as SDNodes for each of the post-isel label, label id, and label flavor. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52943 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86CodeEmitter.cpp
|
a125e62117011f9361b0e8a7b76d1089173f97f4 |
|
20-May-2008 |
Evan Cheng <evan.cheng@apple.com> |
runOnMachineFunction should set IsPIC because relocation model may have been changed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51291 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86CodeEmitter.cpp
|
c9f5f3f64f896d0a8c8fa35a1dd98bc57b8960f6 |
|
14-May-2008 |
Dan Gohman <gohman@apple.com> |
Change target-specific classes to use more precise static types. This eliminates the need for several awkward casts, including the last dynamic_cast under lib/Target. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51091 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86CodeEmitter.cpp
|
7e03280b535242c1f394348702a1d1840b75774c |
|
18-Apr-2008 |
Evan Cheng <evan.cheng@apple.com> |
- Fix atomic operation JIT encoding. - Remove unused instructions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49921 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86CodeEmitter.cpp
|
52e724ad7e679ee590f4bd763d55280586a8f1bc |
|
16-Apr-2008 |
Nicolas Geoffray <nicolas.geoffray@lip6.fr> |
Infrastructure for getting the machine code size of a function and an instruction. X86, PowerPC and ARM are implemented git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49809 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86CodeEmitter.cpp
|
ab394bdcc0e89ce6dafae45fb7dd7420e77f14d7 |
|
03-Apr-2008 |
Evan Cheng <evan.cheng@apple.com> |
Fix x86-64 encoding bug. REX prefix must always follow 0x0F prefix. For example, extractps in 64bit mode: 66 REX 0F 3A 17, not 66 0F 3A REX 17. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49157 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86CodeEmitter.cpp
|
d18330763965745fea05536939f5aadffcc6a5a6 |
|
17-Mar-2008 |
Evan Cheng <evan.cheng@apple.com> |
Unbreak JIT. Ignore TargetInstrInfo::IMPLICIT_DEF. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48447 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86CodeEmitter.cpp
|
da47e6e0d003c873da960361549e57ee4617c301 |
|
15-Mar-2008 |
Evan Cheng <evan.cheng@apple.com> |
Replace all target specific implicit def instructions with a target independent one: TargetInstrInfo::IMPLICIT_DEF. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48380 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86CodeEmitter.cpp
|
17ed8fa63d57bbac2aa0533e510969fe5155b22a |
|
14-Mar-2008 |
Evan Cheng <evan.cheng@apple.com> |
Add debugging stuff. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48359 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86CodeEmitter.cpp
|
b7664c617373bbb62b8cf281e0fbc3802a95f9d1 |
|
05-Mar-2008 |
Evan Cheng <evan.cheng@apple.com> |
Ignore debugging related instructions if they get this far. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47934 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86CodeEmitter.cpp
|
0b21390a860c480095fe8a823ac0ccc285a33d48 |
|
05-Mar-2008 |
Evan Cheng <evan.cheng@apple.com> |
Rather than asserting. Dump out the MI that we are not able to encode and abort. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47933 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86CodeEmitter.cpp
|
ea7da50e5a7f291295c10d91fc3fdba76d339579 |
|
01-Mar-2008 |
Andrew Lenharth <andrewl@lenharth.org> |
Add lock prefix support to x86. Also add the instructions necessary for the atomic ops. They are still marked pseudo, since I cannot figure out what format to use, but they are the correct opcode. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47795 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86CodeEmitter.cpp
|
85db3a96b49e4fdb130b55f27e1d5596e771795a |
|
26-Feb-2008 |
Bill Wendling <isanbard@gmail.com> |
De-tabify git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47600 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86CodeEmitter.cpp
|
afe6c2b001a924cd74bd0aacfed5984d9af004b0 |
|
13-Feb-2008 |
Nicolas Geoffray <nicolas.geoffray@lip6.fr> |
Enable exception handling int JIT git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47079 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86CodeEmitter.cpp
|
60783304f6385c952634c9da5f9b0c9eee8eccb8 |
|
08-Feb-2008 |
Dan Gohman <gohman@apple.com> |
Avoid needlessly casting away const qualifiers. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46877 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86CodeEmitter.cpp
|
b38bec222c2cda1b905084400b9e91afbc30f985 |
|
10-Jan-2008 |
Chris Lattner <sabre@nondot.org> |
IMPLICIT_USE and IMPLICIT_DEF are dead, remove them. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45838 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86CodeEmitter.cpp
|
749c6f6b5ed301c84aac562e414486549d7b98eb |
|
07-Jan-2008 |
Chris Lattner <sabre@nondot.org> |
rename TargetInstrDescriptor -> TargetInstrDesc. Make MachineInstr::getDesc return a reference instead of a pointer, since it can never be null. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45695 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86CodeEmitter.cpp
|
8f707e15fbd09ca948b86419bcb0c92470827ac9 |
|
07-Jan-2008 |
Chris Lattner <sabre@nondot.org> |
rename hasVariableOperands() -> isVariadic(). Add some comments. Evan, please review the comments I added to getNumDefs to make sure that they are accurate, thx. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45687 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86CodeEmitter.cpp
|
349c4952009525b27383e2120a6b3c998f39bd09 |
|
07-Jan-2008 |
Chris Lattner <sabre@nondot.org> |
Move a bunch more accessors from TargetInstrInfo to TargetInstrDescriptor git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45680 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86CodeEmitter.cpp
|
69244300b8a0112efb44b6273ecea4ca6264b8cf |
|
07-Jan-2008 |
Chris Lattner <sabre@nondot.org> |
Rename MachineInstr::getInstrDescriptor -> getDesc(), which reflects that it is cheap and efficient to get. Move a variety of predicates from TargetInstrInfo into TargetInstrDescriptor, which makes it much easier to query a predicate when you don't have TII around. Now you can use MI->getDesc()->isBranch() instead of going through TII, and this is much more efficient anyway. Not all of the predicates have been moved over yet. Update old code that used MI->getInstrDescriptor()->Flags to use the new predicates in many places. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45674 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86CodeEmitter.cpp
|
2a3e08b5961353fa3faeadf81f481ae9f5463427 |
|
05-Jan-2008 |
Evan Cheng <evan.cheng@apple.com> |
X86 JIT PIC jumptable support. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45616 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86CodeEmitter.cpp
|
0475ab58b8e92fa8e8b90ddbf023bc60587c5e25 |
|
05-Jan-2008 |
Evan Cheng <evan.cheng@apple.com> |
Combine MovePCtoStack + POP32r into one instruction MOVPC32r so it can be moved if needed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45605 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86CodeEmitter.cpp
|
991500e329b419fca3aa547329a34b04e2028ef1 |
|
04-Jan-2008 |
Evan Cheng <evan.cheng@apple.com> |
Unbreak tailcall opt in JIT. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45576 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86CodeEmitter.cpp
|
be8c03fc66b75fa775e1f47d62a1b0d803fced1c |
|
04-Jan-2008 |
Evan Cheng <evan.cheng@apple.com> |
X86 PIC JIT support fixes: encoding bugs, add lazy pointer stubs support. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45575 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86CodeEmitter.cpp
|
02aabbf96b1f22144afe2bec8ad480a9b803f6b8 |
|
03-Jan-2008 |
Evan Cheng <evan.cheng@apple.com> |
Change MachineRelocation::DoesntNeedFnStub to NeedStub. This fields will be used for non-function GV relocations that require function address stubs (e.g. Mac OS X in non-static mode). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45527 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86CodeEmitter.cpp
|
306cbdbee7b46980b73c48b93f2908c79be13436 |
|
03-Jan-2008 |
Evan Cheng <evan.cheng@apple.com> |
X86 PIC JIT bug fix: relocations for constantpool and jumptable. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45515 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86CodeEmitter.cpp
|
8aa797aa51cd4ea1ec6f46f4891a6897944b75b2 |
|
31-Dec-2007 |
Chris Lattner <sabre@nondot.org> |
Add new shorter predicates for testing machine operands for various types: e.g. MO.isMBB() instead of MO.isMachineBasicBlock(). I don't plan on switching everything over, so new clients should just start using the shorter names. Remove old long accessors, switching everything over to use the short accessor: getMachineBasicBlock() -> getMBB(), getConstantPoolIndex() -> getIndex(), setMachineBasicBlock -> setMBB(), etc. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45464 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86CodeEmitter.cpp
|
4ee451de366474b9c228b4e5fa573795a715216d |
|
29-Dec-2007 |
Chris Lattner <sabre@nondot.org> |
Remove attribution from file headers, per discussion on llvmdev. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45418 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86CodeEmitter.cpp
|
aabe38bf0c773dffed5c12a35e894915418af512 |
|
22-Dec-2007 |
Evan Cheng <evan.cheng@apple.com> |
Preliminary PIC JIT support for X86 (32-bit) / Darwin. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45313 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86CodeEmitter.cpp
|
b97aec663b1591e71c9ddee6dbb327d1b827eda5 |
|
13-Nov-2007 |
Dale Johannesen <dalej@apple.com> |
Add parameter to getDwarfRegNum to permit targets to use different mappings for EH and debug info; no functional change yet. Fix warning in X86CodeEmitter. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44056 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86CodeEmitter.cpp
|
e7c8754a521d90e1164f2db7a5f999f51b818f12 |
|
13-Nov-2007 |
Evan Cheng <evan.cheng@apple.com> |
Fix x86-64 jit: remove reliance on Dwarf numbers. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44048 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86CodeEmitter.cpp
|
ee465749313579ccd91575ca8acf70b75c221a2c |
|
29-Aug-2007 |
Duncan Sands <baldrick@free.fr> |
Move getX86RegNum into X86RegisterInfo and use it in the trampoline lowering. Lookup the jump and mov opcodes for the trampoline rather than hard coding them. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41577 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86CodeEmitter.cpp
|
2dc6dc619c89c739550a0fcab96a9f7eac3d9f15 |
|
29-Jul-2007 |
Christopher Lamb <christopher.lamb@gmail.com> |
Change the x86 backend to use extract_subreg for truncation operations. Passes DejaGnu, SingleSource and MultiSource. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40578 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86CodeEmitter.cpp
|
b116fac90f9b54142ac511a30b4d45b54d3508ba |
|
27-Jul-2007 |
Duncan Sands <baldrick@free.fr> |
Trampoline codegen support for X86-32. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40566 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86CodeEmitter.cpp
|
1997473cf72957d0e70322e2fe6fe2ab141c58a6 |
|
03-May-2007 |
Devang Patel <dpatel@apple.com> |
Drop 'const' git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36662 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86CodeEmitter.cpp
|
3e15bf33e024b9df9e89351a165acfdb1dde51ed |
|
02-May-2007 |
Devang Patel <dpatel@apple.com> |
Use 'static const char' instead of 'static const int'. Due to darwin gcc bug, one version of darwin linker coalesces static const int, which defauts PassID based pass identification. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36652 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86CodeEmitter.cpp
|
794fd75c67a2cdc128d67342c6d88a504d186896 |
|
01-May-2007 |
Devang Patel <dpatel@apple.com> |
Do not use typeinfo to identify pass in pass manager. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36632 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86CodeEmitter.cpp
|
bed2946a96ecb15b0b636fa74cb26ce61b1c648e |
|
16-Apr-2007 |
Anton Korobeynikov <asl@math.spbu.ru> |
Removed tabs everywhere except autogenerated & external files. Add make target for tabs checking. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36146 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86CodeEmitter.cpp
|
bb1ee05253d965e0944351a21e9970c02b1aebfe |
|
11-Apr-2007 |
Bill Wendling <isanbard@gmail.com> |
Add support for our first SSSE3 instruction "pmulhrsw". git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35869 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86CodeEmitter.cpp
|
e70ef980437fb4709c7f74460442a6d2666ea51d |
|
14-Mar-2007 |
Evan Cheng <evan.cheng@apple.com> |
Clean up. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35105 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86CodeEmitter.cpp
|
a19ac5286307faac5e1e759a96e4296df27873eb |
|
14-Mar-2007 |
Evan Cheng <evan.cheng@apple.com> |
X86-64 JIT is in large code model. Need stubs for direct calls. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35097 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86CodeEmitter.cpp
|
1ee29257428960fede862fcfdbe80d5d007927e9 |
|
26-Jan-2007 |
Jim Laskey <jlaskey@mac.com> |
Make LABEL a builtin opcode. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33537 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86CodeEmitter.cpp
|
95b2c7da5e83670881270c1cd231a240be0556d9 |
|
19-Dec-2006 |
Chris Lattner <sabre@nondot.org> |
eliminate static ctors for Statistic objects. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32703 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86CodeEmitter.cpp
|
ac0b6ae358944ae8b2b5a11dc08f52c3ed89f2da |
|
06-Dec-2006 |
Chris Lattner <sabre@nondot.org> |
Detemplatize the Statistic class. The only type it is instantiated with is 'unsigned'. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32279 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86CodeEmitter.cpp
|
fd00debde0353b9e567ca4f68d62ad8aae5bf512 |
|
05-Dec-2006 |
Evan Cheng <evan.cheng@apple.com> |
JIT large code model support. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32220 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86CodeEmitter.cpp
|
19f2ffce4598c4c70f32eed7c6740b43185200b1 |
|
05-Dec-2006 |
Evan Cheng <evan.cheng@apple.com> |
- Fix X86-64 JIT by temporarily disabling code that treats GV address as 32-bit immediate in small code model. The JIT cannot ensure GV's are placed in the lower 4G. - Some preliminary support for large code model. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32215 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86CodeEmitter.cpp
|
ba59a1e453e110f7b84233f07613f9c5d9a39b87 |
|
01-Dec-2006 |
Evan Cheng <evan.cheng@apple.com> |
Match TargetInstrInfo changes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32098 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86CodeEmitter.cpp
|
6345d75729392d9b50383f1b5c7f92d477572290 |
|
17-Nov-2006 |
Bill Wendling <isanbard@gmail.com> |
Removed even more std::cerr and #include <iostream> things. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31813 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86CodeEmitter.cpp
|
171d09ea537ac272091a1a2560302074b144fcca |
|
10-Nov-2006 |
Evan Cheng <evan.cheng@apple.com> |
Use TargetInstrInfo::getNumOperands() instead of MachineInstr::getNumOperands(). In preparation for implicit reg def/use changes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31616 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86CodeEmitter.cpp
|
a1fd6504aaf62b87530e8230517957bad3facc96 |
|
09-Nov-2006 |
Evan Cheng <evan.cheng@apple.com> |
Remove M_2_ADDR_FLAG. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31583 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86CodeEmitter.cpp
|
80543c83057622884d86dd8758a6d560c41e9a8b |
|
13-Sep-2006 |
Evan Cheng <evan.cheng@apple.com> |
Skip over first operand when determining REX prefix for two-address code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30300 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86CodeEmitter.cpp
|
25ab690a43cbbb591b76d49e3595b019c32f4b3f |
|
08-Sep-2006 |
Evan Cheng <evan.cheng@apple.com> |
Committing X86-64 support. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30177 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86CodeEmitter.cpp
|
95971c51b0cb080edc218edd2100c52784b1159b |
|
07-Sep-2006 |
Evan Cheng <evan.cheng@apple.com> |
Clean up. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30140 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86CodeEmitter.cpp
|
48ff2fb1293879dbe95ea56f0242f62bdd7f9569 |
|
06-Sep-2006 |
Evan Cheng <evan.cheng@apple.com> |
Watch out for variable_ops instructions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30135 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86CodeEmitter.cpp
|
3530bafe00a46efe5e164eb66bd229ed2d321dac |
|
06-Sep-2006 |
Evan Cheng <evan.cheng@apple.com> |
Variable ops instructions may ignore the last few operands for code emission. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30134 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86CodeEmitter.cpp
|
0e42d81a838bcccd3ed6aacd011a172633ce6606 |
|
05-Sep-2006 |
Chris Lattner <sabre@nondot.org> |
Update the X86 JIT to make it work with the new two-addr changes. This also adds assertions that check to make sure every operand gets emitted. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30110 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86CodeEmitter.cpp
|
a4f0b3a084d120cfc5b5bb06f64b222f5cb72740 |
|
27-Aug-2006 |
Chris Lattner <sabre@nondot.org> |
s|llvm/Support/Visibility.h|llvm/Support/Compiler.h| git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29911 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86CodeEmitter.cpp
|
8d3e1d66135433a956e1d5216f0d1f981afa51dc |
|
26-Aug-2006 |
Chris Lattner <sabre@nondot.org> |
Give a good error message when we try to jit inline asm. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29891 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86CodeEmitter.cpp
|
f141cc46faf6f0525f0baa10b6a6c976301874a5 |
|
27-Jul-2006 |
Evan Cheng <evan.cheng@apple.com> |
Resolve BB references with relocation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29351 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86CodeEmitter.cpp
|
55fc28076fa48723bd170e51638b3b5974ca0fa1 |
|
25-Jul-2006 |
Evan Cheng <evan.cheng@apple.com> |
- Refactor the code that resolve basic block references to a TargetJITInfo method. - Added synchronizeICache() to TargetJITInfo. It is called after each block of code is emitted to flush the icache. This ensures correct execution on targets that have separate dcache and icache. - Added PPC / Mac OS X specific code to do icache flushing. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29276 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86CodeEmitter.cpp
|
2c79de8018bb8c77a245d4ccb740affbf1f52319 |
|
29-Jun-2006 |
Chris Lattner <sabre@nondot.org> |
Hide x86 symbols git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28976 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86CodeEmitter.cpp
|
74cb064a352b2ead0c8f5a40dbf1cd9a82d5354a |
|
22-Jun-2006 |
Evan Cheng <evan.cheng@apple.com> |
Eliminate unneeded parameter. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28907 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86CodeEmitter.cpp
|
22f71315df28151639f5d2804844758cfdf5b72a |
|
22-Jun-2006 |
Evan Cheng <evan.cheng@apple.com> |
variable_ops instructions such as call can have any number of operands. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28906 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86CodeEmitter.cpp
|
069287d460321af43b7c88b816da5c778e5f46d1 |
|
16-May-2006 |
Evan Cheng <evan.cheng@apple.com> |
X86 integer register classes naming changes. Make them consistent with FP, vector classes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28324 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86CodeEmitter.cpp
|
4efeab208cf0fe7ae2f68bcdd1264a8fdb18826c |
|
04-May-2006 |
Chris Lattner <sabre@nondot.org> |
Remove a bunch more dead V9 specific stuff git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28094 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86CodeEmitter.cpp
|
34fb2cad46adb39f3c2cc705fbbf439a383d0f65 |
|
04-May-2006 |
Chris Lattner <sabre@nondot.org> |
Remove some more V9-specific stuff. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28092 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86CodeEmitter.cpp
|
0e57629a933a43d8adcba8368c4e3f90fe0f4e49 |
|
04-May-2006 |
Chris Lattner <sabre@nondot.org> |
Simplify handling of relocations git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28090 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86CodeEmitter.cpp
|
5a032de387831b9de3a707292eade95934938da9 |
|
03-May-2006 |
Chris Lattner <sabre@nondot.org> |
Change from using MachineRelocation ctors to using static methods in MachineRelocation to create Relocations. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28088 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86CodeEmitter.cpp
|
93e5c284d7db810078b3cc0ca59cfabb680f7d6e |
|
03-May-2006 |
Chris Lattner <sabre@nondot.org> |
inline a simple method git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28083 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86CodeEmitter.cpp
|
b4432f3d4754e16c918428d34a9d8ec18ab79204 |
|
03-May-2006 |
Chris Lattner <sabre@nondot.org> |
Suck block address tracking out of targets into the JIT Emitter. This simplifies the MachineCodeEmitter interface just a little bit and makes BasicBlocks work like constant pools and jump tables. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28082 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86CodeEmitter.cpp
|
67977ad19cf961f61c35006d9cc5695c4dde6655 |
|
03-May-2006 |
Nate Begeman <natebegeman@mac.com> |
Teach the x86 jit how to handle jump tables not directly used by a jump instruction. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28080 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86CodeEmitter.cpp
|
af1563fb62ed76f4818ac172ab1c6cf15fa35a82 |
|
03-May-2006 |
Chris Lattner <sabre@nondot.org> |
Change the BasicBlockAddrs map to be a vector, indexed by MBB number. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28069 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86CodeEmitter.cpp
|
f75f9be3fb89eb6661a0ed8bfee8a6328ee5a4d1 |
|
03-May-2006 |
Chris Lattner <sabre@nondot.org> |
Several related changes: 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. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28065 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86CodeEmitter.cpp
|
d3f0aefc33965d3d0ca6f92af4ebaea354b063c4 |
|
02-May-2006 |
Chris Lattner <sabre@nondot.org> |
Fix a purely hypothetical problem (for now): emitWord emits in the host byte format. This doesn't work when using the code emitter in a cross target environment. Since the code emitter is only really used by the JIT, this isn't a current problem, but if we ever start emitting .o files, it would be. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28060 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86CodeEmitter.cpp
|
43b429b05989075b60693d57395c99b0ad789f8d |
|
02-May-2006 |
Chris Lattner <sabre@nondot.org> |
Refactor the machine code emitter interface to pull the pointers for the current code emission location into the base class, instead of being in the derived classes. This change means that low-level methods like emitByte/emitWord now are no longer virtual (yaay for speed), and we now have a framework to support growable code segments. This implements feature request #1 of PR469. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28059 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86CodeEmitter.cpp
|
608c189534eeb24c9c2cf4ba2958a18df895935a |
|
02-May-2006 |
Chris Lattner <sabre@nondot.org> |
There is no reason to use a virtual method to store this word. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28053 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86CodeEmitter.cpp
|
37efe6764568a3829fee26aba532283131d1a104 |
|
22-Apr-2006 |
Nate Begeman <natebegeman@mac.com> |
JumpTable support! What this represents is working asm and jit support for x86 and ppc for 100% dense switch statements when relocations are non-PIC. This support will be extended and enhanced in the coming days to support PIC, and less dense forms of jump tables. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27947 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86CodeEmitter.cpp
|
a9f2a717e9112a808d3d0907b19d52deb7bdf0ae |
|
22-Mar-2006 |
Evan Cheng <evan.cheng@apple.com> |
Add a couple more pseudo instructions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26939 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86CodeEmitter.cpp
|
140a4c486829e1ade130ca1ce5ca5c934a79523e |
|
26-Feb-2006 |
Evan Cheng <evan.cheng@apple.com> |
ConstantPoolIndex is now the displacement portion of the address (rather than base). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26382 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86CodeEmitter.cpp
|
4c1aa866578f7a358407a22fe55b454f52a24325 |
|
22-Feb-2006 |
Evan Cheng <evan.cheng@apple.com> |
- Added option -relocation-model to set relocation model. Valid values include static, pic, dynamic-no-pic, and default. PPC and x86 default is dynamic-no-pic for Darwin, pic for others. - Removed options -enable-pic and -ppc-static. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26315 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86CodeEmitter.cpp
|
5e8b5558f7939cde1f6de2e18d7616903e86e7eb |
|
18-Feb-2006 |
Evan Cheng <evan.cheng@apple.com> |
Jit does not support PIC yet. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26278 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86CodeEmitter.cpp
|
ee50a1ae27a9d50dc292ef7ae9a902a9bdd1a1b4 |
|
14-Feb-2006 |
Evan Cheng <evan.cheng@apple.com> |
Don't special case XS, XD prefixes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26183 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86CodeEmitter.cpp
|
576c1419215b9f3b421ab74ff97acb3f2503c904 |
|
14-Feb-2006 |
Evan Cheng <evan.cheng@apple.com> |
Bug fix: XS, XD prefixes were being emitted twice. XMM registers were not being handled. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26182 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86CodeEmitter.cpp
|
3c55c54a877b3e5a79053df8f6080f505c9d1ff4 |
|
01-Feb-2006 |
Evan Cheng <evan.cheng@apple.com> |
- Use xor to clear integer registers (set R, 0). - Added a new format for instructions where the source register is implied and it is same as the destination register. Used for pseudo instructions that clear the destination register. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25872 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86CodeEmitter.cpp
|
dabbc983966594a004b99c257fe2a776bef0bd18 |
|
28-Jan-2006 |
Chris Lattner <sabre@nondot.org> |
Fix a bunch of JIT failures with the new isel git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25748 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86CodeEmitter.cpp
|
c2493c45a0357df87fd809b3aab49ec216d45aa2 |
|
27-Jan-2006 |
Chris Lattner <sabre@nondot.org> |
Unbreak the JIT with SSE git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25688 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86CodeEmitter.cpp
|
6da23db69f50bb5282520be768f8612a3c407ff3 |
|
24-Jan-2006 |
Chris Lattner <sabre@nondot.org> |
Allow jit-beta to work git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25578 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86CodeEmitter.cpp
|
2c2c6c61f100bc7c3df873b11203fcea1b5e18fe |
|
23-Jan-2006 |
Chris Lattner <sabre@nondot.org> |
Add explicit #includes of <iostream> git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25515 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86CodeEmitter.cpp
|
81b6ed7ed1dbf1e5cc001aaff2dee5bdd8d1122e |
|
11-Jul-2005 |
Chris Lattner <sabre@nondot.org> |
Refactor things a bit to allow the ELF code emitter to run the X86 machine code emitter after itself. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22376 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86CodeEmitter.cpp
|
f63be7d3959939b2ffaf0bba5519b71216ec9ee6 |
|
06-Jul-2005 |
Nate Begeman <natebegeman@mac.com> |
First round of support for doing scalar FP using the SSE2 ISA extension and XMM registers. There are many known deficiencies and fixmes, which will be addressed ASAP. The major benefit of this work is that it will allow the LLVM register allocator to allocate FP registers across basic blocks. The x86 backend will still default to x87 style FP. To enable this work, you must pass -enable-sse-scalar-fp and either -sse2 or -sse3 to llc. An example before and after would be for: double foo(double *P) { double Sum = 0; int i; for (i = 0; i < 1000; ++i) Sum += P[i]; return Sum; } The inner loop looks like the following: x87: .LBB_foo_1: # no_exit fldl (%esp) faddl (%eax,%ecx,8) fstpl (%esp) incl %ecx cmpl $1000, %ecx #FP_REG_KILL jne .LBB_foo_1 # no_exit SSE2: addsd (%eax,%ecx,8), %xmm0 incl %ecx cmpl $1000, %ecx #FP_REG_KILL jne .LBB_foo_1 # no_exit git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22340 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86CodeEmitter.cpp
|
16cb6f82eb78a2140fe1cf1e432288fc98cb4ee7 |
|
19-May-2005 |
Chris Lattner <sabre@nondot.org> |
Tailcalls require stubs to be emitted. Otherwise, the compilation callback doesn't know who 'called' it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22136 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86CodeEmitter.cpp
|
0e0a7a45d3d0a8c865a078459d2e1c6d8967a100 |
|
22-Apr-2005 |
Misha Brukman <brukman+llvm@gmail.com> |
* Remove trailing whitespace * Convert tabs to spaces git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21426 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86CodeEmitter.cpp
|
88f9386cfec85a90ce6a70cd3beb6281f691dfc3 |
|
21-Nov-2004 |
Chris Lattner <sabre@nondot.org> |
There is no reason to emit function stubs for direct calls. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@18082 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86CodeEmitter.cpp
|
e72e445ed574c684ddef1aa15e0e245a43c6a2be |
|
21-Nov-2004 |
Chris Lattner <sabre@nondot.org> |
Remove all JIT specific code and switch the code generator over to emitting relocations for global references. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@18068 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86CodeEmitter.cpp
|
3104db054aa3d2462878f3e506aafb40b48cbfbf |
|
19-Nov-2004 |
Chris Lattner <sabre@nondot.org> |
Dont' forget to switch back to decimal output git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@18010 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86CodeEmitter.cpp
|
39a83dc37cfc59bee8def2230fa4956267da6042 |
|
16-Nov-2004 |
Chris Lattner <sabre@nondot.org> |
Fix a major bug in the signed shr code, which apparently only breaks 134.perl! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17902 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86CodeEmitter.cpp
|
8f1ac9f90d06cc80967f8b5f0270ecb955b83294 |
|
16-Nov-2004 |
Chris Lattner <sabre@nondot.org> |
Remove a dead function, which died when we got GAS emission working (phwew, hold your nose!) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17869 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86CodeEmitter.cpp
|
f2d552eca65253bd8fc5934e4019921bc32b2364 |
|
16-Nov-2004 |
Chris Lattner <sabre@nondot.org> |
Implement a simple FIXME: if we are emitting a basic block address that has already been emitted, we don't have to remember it and deal with it later, just emit it directly. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17868 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86CodeEmitter.cpp
|
16fe6f5f24062c5e1ce6178989e135c51e6d9c76 |
|
16-Nov-2004 |
Chris Lattner <sabre@nondot.org> |
* Merge some win32 ifdefs together * Get rid of "emitMaybePCRelativeValue", either we want to emit a PC relative value or not: drop the maybe BS. As it turns out, the only places where the bool was a variable coming in, the bool was a dynamic constant. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17867 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86CodeEmitter.cpp
|
5aa3ed92de45f7fa72135cb04816ffa264e5284c |
|
16-Nov-2004 |
Chris Lattner <sabre@nondot.org> |
Add debug-only=jit printout, so we see when lazily resolved symbols are set up. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17862 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86CodeEmitter.cpp
|
e5cda8e72732a03c453c45113b3d97b6b55cb7a3 |
|
05-Nov-2004 |
John Criswell <criswell@uiuc.edu> |
Fix compilation problem; make the cast and the LHS be the same type. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17488 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86CodeEmitter.cpp
|
141e3fd81d7362cb82a86782425c7057c449b2dc |
|
05-Nov-2004 |
Chris Lattner <sabre@nondot.org> |
Quiet VC++ warnings git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17484 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86CodeEmitter.cpp
|
7d0974b9a07aea5488d8123c6df6d79f1b40bc40 |
|
18-Oct-2004 |
Chris Lattner <sabre@nondot.org> |
Improve compatibility with VC++, patch contributed by Morten Ofstad! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17126 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86CodeEmitter.cpp
|
07306de06ec1bdc09bc09046ac868291523fbf63 |
|
17-Oct-2004 |
Chris Lattner <sabre@nondot.org> |
Unify handling of constant pool indexes with the other code paths, allowing us to use index registers for CPI's git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17082 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86CodeEmitter.cpp
|
8cce7cd0aebda3f286b322d8c4dc034bb2ee129c |
|
15-Oct-2004 |
Chris Lattner <sabre@nondot.org> |
Give the X86 JIT the ability to encode global+disp constants. Patch contributed by Jeff Cohen! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17010 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86CodeEmitter.cpp
|
fb0796e82e9adc28a5fcb283711329db0c991543 |
|
12-Sep-2004 |
Misha Brukman <brukman+llvm@gmail.com> |
Fix filename: Printer.cpp has become X86AsmPrinter.cpp git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16299 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86CodeEmitter.cpp
|
551ccae044b0ff658fe629dd67edd5ffe75d10e8 |
|
02-Sep-2004 |
Reid Spencer <rspencer@reidspencer.com> |
Changes For Bug 352 Move include/Config and include/Support into include/llvm/Config, include/llvm/ADT and include/llvm/Support. From here on out, all LLVM public header files must be under include/llvm/. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16137 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86CodeEmitter.cpp
|
916f96ace0840510fe50400b0f83beebf6c99752 |
|
11-Aug-2004 |
Chris Lattner <sabre@nondot.org> |
Remove dead method git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15647 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86CodeEmitter.cpp
|
42df461c9078717e8422e8159b0a977cd2171d37 |
|
17-Jul-2004 |
Chris Lattner <sabre@nondot.org> |
Make sure to emit the immediate byte for instructions like: shrd [mem], reg, imm This fixes the jit-ls failure on 186.crafty. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14914 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86CodeEmitter.cpp
|
d029cd2d5a159823f20a91d30fd782aae871c589 |
|
02-Jun-2004 |
Chris Lattner <sabre@nondot.org> |
Convert to the new TargetMachine interface. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13952 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86CodeEmitter.cpp
|
09015d9468abc3afb9880f9405bde31346d2b27d |
|
14-May-2004 |
Brian Gaeke <gaeke@uiuc.edu> |
Don't keep track of references to LLVM BasicBlocks while emitting; use MachineBasicBlocks instead. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13568 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86CodeEmitter.cpp
|
b61fc83ecb75e4b1dd44adc3acbd5559aa882e81 |
|
23-Apr-2004 |
Brian Gaeke <gaeke@uiuc.edu> |
Use emitWordAt() to emit forward-branch fixups. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13120 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86CodeEmitter.cpp
|
e47f4ff9f60e786e34c6d625ad8e682de66680c5 |
|
13-Apr-2004 |
Chris Lattner <sabre@nondot.org> |
Add support for new instruction type git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12894 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86CodeEmitter.cpp
|
39c2005b7082367457a1e6b833bf7e39a03a3b71 |
|
09-Mar-2004 |
Alkis Evlogimenos <alkis@evlogimenos.com> |
Add emitInstruction() API so that we can get the bytes of a simple instruction git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12252 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86CodeEmitter.cpp
|
f6e8156008656a1ac69763c70cc87bd3e1533d40 |
|
09-Mar-2004 |
Alkis Evlogimenos <alkis@evlogimenos.com> |
Constify things a bit git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12251 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86CodeEmitter.cpp
|
5ab29b504d49d3fa84d76f79e73704260f900682 |
|
28-Feb-2004 |
Alkis Evlogimenos <alkis@evlogimenos.com> |
Each instruction now has both an ImmType and a MemType. This describes the size of the immediate and the memory operand on instructions that use them. This resolves problems with instructions that take both a memory and an immediate operand but their sizes differ (i.e. ADDmi32b). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11967 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86CodeEmitter.cpp
|
169584ed45f62f91599bed3d019640e168d815ea |
|
27-Feb-2004 |
Alkis Evlogimenos <alkis@evlogimenos.com> |
Rename MRMS[0-7]{r,m} to MRM[0-7]{r,m}. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11921 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86CodeEmitter.cpp
|
cc0d2f586f87a6aef77514ee75dab67cbfc235cb |
|
17-Feb-2004 |
Chris Lattner <sabre@nondot.org> |
Add support for GlobalAddress's for alkis git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11560 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86CodeEmitter.cpp
|
5b672526205cc4438deb529363fb9bdaebbe086a |
|
17-Feb-2004 |
Chris Lattner <sabre@nondot.org> |
Expand the repertoire of the forms we can print and encode. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11537 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86CodeEmitter.cpp
|
859a18b5833f3566799313ecba8db4916500485b |
|
15-Feb-2004 |
Alkis Evlogimenos <alkis@evlogimenos.com> |
Make dense maps keyed on physical registers smallerusing MRegisterInfo::getNumRegs() instead of MRegisterInfo::FirstVirtualRegister. Also use MRegisterInfo::is{Physical,Virtual}Register where appropriate. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11477 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86CodeEmitter.cpp
|
c81efdc59cd2ce5410cefd7ab5cb52cfd7ac3aad |
|
15-Feb-2004 |
Alkis Evlogimenos <alkis@evlogimenos.com> |
Add back machine code deleter pass until we get a MachineCode pass that will be responsible for the creation of MachineFunctions and will be required by all MachineFunctionPass passes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11453 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86CodeEmitter.cpp
|
915e5e56d7cc8e140d33202eed6244ed0356ed1f |
|
12-Feb-2004 |
Chris Lattner <sabre@nondot.org> |
Add support for the rep movs[bwd] instructions, and emit them when code generating the llvm.memcpy intrinsic. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11351 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86CodeEmitter.cpp
|
c0b9dc5be79f009d260edb5cd5e1d8346587aaa2 |
|
12-Feb-2004 |
Alkis Evlogimenos <alkis@evlogimenos.com> |
Change MachineBasicBlock's vector of MachineInstr pointers into an ilist of MachineInstr objects. This allows constant time removal and insertion of MachineInstr instances from anywhere in each MachineBasicBlock. It also allows for constant time splicing of MachineInstrs into or out of MachineBasicBlocks. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11340 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86CodeEmitter.cpp
|
14be64018fb38d1fa535b9cd12d11371f4eba3b5 |
|
04-Feb-2004 |
Alkis Evlogimenos <alkis@evlogimenos.com> |
Modify the two address instruction pass to remove the duplicate operand of the instruction and thus simplify the register allocation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11124 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86CodeEmitter.cpp
|
e0bb3e766d977d129da6add3bad6793ca20ab151 |
|
20-Dec-2003 |
Alkis Evlogimenos <alkis@evlogimenos.com> |
Remove floating point killer pass. This is now implemented in the instruction selector by adding a new pseudo-instruction FP_REG_KILL. This instruction implicitly defines all x86 fp registers and is a terminator so that passes which add machine code at the end of basic blocks (like phi elimination) do not add instructions between it and the branch or return instruction. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10562 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86CodeEmitter.cpp
|
655239cc6b7a3045df386b91b14b89e3f0adf434 |
|
20-Dec-2003 |
Chris Lattner <sabre@nondot.org> |
Finally, _actually delete the machine code_ for a function, after it has been emitted. Also, since the FPK pass is causing memory access violations, disable it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10559 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86CodeEmitter.cpp
|
2828970819ee6b056df8e676aa5e7950f1e1ff7e |
|
20-Dec-2003 |
Chris Lattner <sabre@nondot.org> |
A minor cleanup for better encapsulation git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10545 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86CodeEmitter.cpp
|
1e60a9165dc4d6ce5650dacc026f2942696af920 |
|
20-Dec-2003 |
Chris Lattner <sabre@nondot.org> |
Rip JIT specific stuff out of TargetMachine, as per PR176 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10542 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86CodeEmitter.cpp
|
52b62de10063a15dfbcfb8b61504df826c76e03c |
|
12-Dec-2003 |
John Criswell <criswell@uiuc.edu> |
Modified cast so that it converts the int to a long before casting to a pointer. This evades a warning emitted by GCC when we cast from unsigned int (32 bit) to void * (64 bit) on SparcV9. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10435 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86CodeEmitter.cpp
|
65b05ce02229b8e0cc270e4b4d3f1dd612300519 |
|
12-Dec-2003 |
Chris Lattner <sabre@nondot.org> |
Implement the TargetMachine::getJITStubForFunction method for X86, finegrainify namespacification. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10430 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86CodeEmitter.cpp
|
d0fde30ce850b78371fd1386338350591f9ff494 |
|
11-Nov-2003 |
Brian Gaeke <gaeke@uiuc.edu> |
Put all LLVM code into the llvm namespace, as per bug 109. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9903 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86CodeEmitter.cpp
|
b576c94c15af9a440f69d9d03c2afead7971118c |
|
20-Oct-2003 |
John Criswell <criswell@uiuc.edu> |
Added LLVM project notice to the top of every C++ source file. Header files will be on the way. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9298 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86CodeEmitter.cpp
|
c01d1232fe5a25d807c7ab975437ef6c514d2cd6 |
|
20-Oct-2003 |
Chris Lattner <sabre@nondot.org> |
* Rename X86::IMULr16 -> X86::IMULrr16 * Implement R1 = R2 * C where R1 and R2 are 32 or 16 bits. This avoids an extra copy into a register, reducing register pressure. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9278 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86CodeEmitter.cpp
|
45f0b6dd56289b2f6c1bfd48ab78fadf3001c7b4 |
|
17-Oct-2003 |
Brian Gaeke <gaeke@uiuc.edu> |
Fix typo in comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9187 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86CodeEmitter.cpp
|
5560c9d49ccae132cabf1155f18aa0480dce3eda |
|
18-Aug-2003 |
Misha Brukman <brukman+llvm@gmail.com> |
Spell `necessary' correctly. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7944 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86CodeEmitter.cpp
|
8844a0ba898a3a1db7f5fd91ecf6a5402e3d51a0 |
|
13-Aug-2003 |
Brian Gaeke <gaeke@uiuc.edu> |
addPassesToJITCompile and addPassesToEmitMachineCode now take a FunctionPassManager, to support function-at-a-time compilation and emission of code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7821 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86CodeEmitter.cpp
|
02beda12214997e2ac9586781e1f8d377744e6fa |
|
05-Aug-2003 |
Chris Lattner <sabre@nondot.org> |
This is the real fix for the previous register allocator problem. Physical registers should not float around. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7587 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86CodeEmitter.cpp
|
cb5335877804fe9e555be8955314935f35c26f30 |
|
03-Aug-2003 |
Chris Lattner <sabre@nondot.org> |
Set debug types git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7532 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86CodeEmitter.cpp
|
a11136b16c6c3cf26fc6185447458a1c4b300107 |
|
02-Aug-2003 |
Chris Lattner <sabre@nondot.org> |
Move DEBUG to Debug.h git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7497 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86CodeEmitter.cpp
|
dee1263c7c2c604026f18d0a0f890dd6f431c3e5 |
|
27-Jul-2003 |
Chris Lattner <sabre@nondot.org> |
We don't modify the LLVM rep, remain const correct git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7345 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86CodeEmitter.cpp
|
7a73b80b9052136c8cd2234eb3433a07df7cf38e |
|
30-Jun-2003 |
John Criswell <criswell@uiuc.edu> |
Merged in autoconf branch. This provides configuration via the autoconf system. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7014 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86CodeEmitter.cpp
|
ad95d9ef50cbd789025dbff8a1e018650cbcdc7f |
|
16-Jun-2003 |
Brian Gaeke <gaeke@uiuc.edu> |
Isolate machine-dependent use of <alloca.h> in "Support/Alloca.h", so that we can easily change its use to be conditional on the result of an autoconf test later. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6723 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86CodeEmitter.cpp
|
30d002bd66d28e0c074ca350a30b57886566f8ae |
|
06-Jun-2003 |
Chris Lattner <sabre@nondot.org> |
Fix warnings on Sparc git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6658 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86CodeEmitter.cpp
|
302de590017e64f65e810e722eaedb67205cb30e |
|
06-Jun-2003 |
Chris Lattner <sabre@nondot.org> |
Add statistic for # machine instrs emitted Add GROSS HACK to get CompilationCallback to work when compiled in release mode git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6646 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86CodeEmitter.cpp
|
ff3261ae865e7b9d500b2a6739396dcf8a8af0e0 |
|
03-Jun-2003 |
Chris Lattner <sabre@nondot.org> |
Add namespace comments for doxygen git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6581 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86CodeEmitter.cpp
|
bc80b2249a24864674b911bf8510b57938627043 |
|
02-Jun-2003 |
Misha Brukman <brukman+llvm@gmail.com> |
Eliminated a compiler warning due to casting to a different-sized datatype. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6531 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86CodeEmitter.cpp
|
cd60313915f916bc72bf74e6391f68380f5f8850 |
|
02-Jun-2003 |
Misha Brukman <brukman+llvm@gmail.com> |
Renamed MachineCodeEmitter.cpp -> X86CodeEmitter.cpp as it conflicts with the target-independent lib/CodeGen/MachineCodeEmitter.cpp; preserved CVS history. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6528 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86CodeEmitter.cpp
|
04b0b309c4d6e3a381edbb2db6a23a0009661dd8 |
|
02-Jun-2003 |
Chris Lattner <sabre@nondot.org> |
Move X86 specific code out of the JIT into the X86 backend git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6516 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86CodeEmitter.cpp
|
992ab561f003ebdf7148cd1e01b498e4be2265e3 |
|
09-May-2003 |
Chris Lattner <sabre@nondot.org> |
This blank line has GOT to go. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6057 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86CodeEmitter.cpp
|
c248903b2a11aadd7098b604024456b0f77f51b0 |
|
07-May-2003 |
Chris Lattner <sabre@nondot.org> |
IMPLICIT_DEF was not the beautiful elegant solution I thought it was going to be. In fact, it made stuff worse. :( git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6013 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86CodeEmitter.cpp
|
9dedbcc3d5d30bfe4eab24483f2a2db5a541ea7a |
|
06-May-2003 |
Chris Lattner <sabre@nondot.org> |
Don't have a cow with new pseudo instructions git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6009 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86CodeEmitter.cpp
|
3501feab811c86c9659248a4875fc31a3165f84d |
|
14-Jan-2003 |
Chris Lattner <sabre@nondot.org> |
Rename MachineInstrInfo -> TargetInstrInfo git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5272 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86CodeEmitter.cpp
|
e831b6b802c3c95227dcd8baa7614e1befd026c0 |
|
13-Jan-2003 |
Chris Lattner <sabre@nondot.org> |
* Add support for FP registers ST* * Add support for the constant pool & constant pool indices * Add support for MRMS?m instructions * Fix FP Prefix emission * Add support for global addresses and external symbols git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5224 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86CodeEmitter.cpp
|
5ae99fe3bf7904823d2745beaa8ee8e404e836a4 |
|
28-Dec-2002 |
Chris Lattner <sabre@nondot.org> |
* Convert to a MachineFunctionPass * ctor doesn't take TM argument * handle direct ESP references correctly! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5179 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86CodeEmitter.cpp
|
5ada8df4882b2a0800157c07530adb0feeddf4f1 |
|
25-Dec-2002 |
Chris Lattner <sabre@nondot.org> |
Add support for FP prefixes git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5151 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86CodeEmitter.cpp
|
facc9fb9ba7317ac376bfb2518b7abde18de3764 |
|
24-Dec-2002 |
Chris Lattner <sabre@nondot.org> |
Add support for the bswap instruction git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5114 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86CodeEmitter.cpp
|
df642e1fd6cf320ffae62d4f24fd346b4aed6cc5 |
|
20-Dec-2002 |
Chris Lattner <sabre@nondot.org> |
fix warning git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5107 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86CodeEmitter.cpp
|
f0eb7beb66d7402ba7ef32466aa6d9a53c33da01 |
|
15-Dec-2002 |
Chris Lattner <sabre@nondot.org> |
Give passes nice names! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5059 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86CodeEmitter.cpp
|
d909683591de7eb7d57edc1a03f6749fbc2f6840 |
|
15-Dec-2002 |
Chris Lattner <sabre@nondot.org> |
Use MachineOperand::isFoo methods instead of our own global functions git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5033 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86CodeEmitter.cpp
|
95780cccef3f6630a912aba9e2241819d7a00ba4 |
|
13-Dec-2002 |
Brian Gaeke <gaeke@uiuc.edu> |
InstSelectSimple.cpp: Give promote32 a comment. Add initial implementation of getReg() for arguments. MachineCodeEmitter.cpp: Fix using EBP with index, scale and no displacement (whew!) due to Chris. Printer.cpp: Fix printing out index and scale in memory references. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4998 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86CodeEmitter.cpp
|
2067184b422b604d1d737d2c9e053afa2dd00d41 |
|
13-Dec-2002 |
Chris Lattner <sabre@nondot.org> |
Emit the right form of mod/rm mod field git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4986 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86CodeEmitter.cpp
|
a0f38c867cea507401dab03076dd5ace69f65edd |
|
13-Dec-2002 |
Chris Lattner <sabre@nondot.org> |
Rename MemArg* to Arg* git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4979 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86CodeEmitter.cpp
|
a6a382c5ca1c53d237b9598b1f9ea5e03823a124 |
|
13-Dec-2002 |
Chris Lattner <sabre@nondot.org> |
Make mem size an assert Add mem size flags to all instructions using an imm git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4978 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86CodeEmitter.cpp
|
5000e43809947222b416caf6cb265d7d2b3b5e13 |
|
13-Dec-2002 |
Misha Brukman <brukman+llvm@gmail.com> |
This is supposed to provide correct size for datatypes. Supposedly. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4977 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86CodeEmitter.cpp
|
ac573f61b4cc095f9b5c7b48728e4d3e85087c2f |
|
04-Dec-2002 |
Chris Lattner <sabre@nondot.org> |
Fix bogus assertion failures git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4919 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86CodeEmitter.cpp
|
dbf30f7b02e23a19eaa4f7b437a1f5682e4ee74c |
|
04-Dec-2002 |
Chris Lattner <sabre@nondot.org> |
Add support for referencing global variables/functions git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4907 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86CodeEmitter.cpp
|
ea1ddab58e9db323294012628a56275da0e930a7 |
|
03-Dec-2002 |
Chris Lattner <sabre@nondot.org> |
Split the machine code emitter completely out of the printer git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4882 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86CodeEmitter.cpp
|
8f04b0981fd8cd54ab89348cd8f29ac230816854 |
|
02-Dec-2002 |
Chris Lattner <sabre@nondot.org> |
More support for machine code emission: raw instructions git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4872 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86CodeEmitter.cpp
|
76041ce5155ca4aab443d139d7ad820ae06cbe09 |
|
02-Dec-2002 |
Chris Lattner <sabre@nondot.org> |
Start implementing MachineCodeEmitter git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4870 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86CodeEmitter.cpp
|
40ead9592888c345d6514dff427ae67dfcf23805 |
|
02-Dec-2002 |
Chris Lattner <sabre@nondot.org> |
Initial support for machine code emission git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4866 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/X86CodeEmitter.cpp
|