Chris Lattner 
							
						 
					 
					
						
						
							
						
						5426652c25 
					 
					
						
						
							
							Implement relocation support by adding a target independent resolver interface.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@18069  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2004-11-20 23:57:07 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						3c600c8346 
					 
					
						
						
							
							This method does not exist any longer.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@18061  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2004-11-20 23:51:03 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						5be478f360 
					 
					
						
						
							
							Add getCurrentPCOffset() and addRelocation() methods.  
						
						... 
						
						
						
						Add stub support for relocations to finishFunction
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@18035  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2004-11-20 03:46:14 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						890b4bd3c0 
					 
					
						
						
							
							Add accessor  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@18030  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2004-11-20 03:11:07 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						45730d71b6 
					 
					
						
						
							
							Match change in MachineCodeEmitter prototype.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@18009  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2004-11-19 20:56:46 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						02376e3f29 
					 
					
						
						
							
							Now that we have ghost linkage, we can force resolution of external symbols  
						
						... 
						
						
						
						immediately instead of lazily.
In this program, for example:
int main() {
  printf("hello world\n");
  printf("hello world\n");
  printf("hello world\n");
  printf("hello world\n");
}
We used to have to go through compilation callback 4 times (once for each
call to printf), now we don't go to it at all.
Thanks to Misha for noticing this, and for adding the initial ghost linkage
patches.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17864  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2004-11-15 23:20:04 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						0050ef8319 
					 
					
						
						
							
							There is no reason to try to materialize the function from bytecode if it  
						
						... 
						
						
						
						already has been.  This may be a small speedup.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17863  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2004-11-15 23:18:09 +00:00 
						 
				 
			
				
					
						
							
							
								Misha Brukman 
							
						 
					 
					
						
						
							
						
						895eddfad4 
					 
					
						
						
							
							Implement ExecutionEngine::freeMachineCodeForFunction()  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17601  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2004-11-07 23:58:46 +00:00 
						 
				 
			
				
					
						
							
							
								Brian Gaeke 
							
						 
					 
					
						
						
							
						
						88560c3a42 
					 
					
						
						
							
							When emitting debug msgs for function stubs, don't truncate the  
						
						... 
						
						
						
						printed pointer value if sizeof(unsigned) != pointer size.  Instead,
use uintptr_t.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17338  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2004-10-29 18:22:45 +00:00 
						 
				 
			
				
					
						
							
							
								Reid Spencer 
							
						 
					 
					
						
						
							
						
						685f86ac0e 
					 
					
						
						
							
							Fix library name.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17307  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2004-10-28 05:37:24 +00:00 
						 
				 
			
				
					
						
							
							
								Misha Brukman 
							
						 
					 
					
						
						
							
						
						ec8430270a 
					 
					
						
						
							
							Use cleaner quoting and eliminate blank space  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17174  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2004-10-22 23:35:57 +00:00 
						 
				 
			
				
					
						
							
							
								Reid Spencer 
							
						 
					 
					
						
						
							
						
						cac731ecbe 
					 
					
						
						
							
							We won't use automake  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17155  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2004-10-22 03:35:04 +00:00 
						 
				 
			
				
					
						
							
							
								Reid Spencer 
							
						 
					 
					
						
						
							
						
						86d341b204 
					 
					
						
						
							
							Initial automake generated Makefile template  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17136  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2004-10-18 23:55:41 +00:00 
						 
				 
			
				
					
						
							
							
								Reid Spencer 
							
						 
					 
					
						
						
							
						
						d96cb6eaa0 
					 
					
						
						
							
							Update to reflect changes in Makefile rules.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16950  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2004-10-13 11:46:52 +00:00 
						 
				 
			
				
					
						
							
							
								Reid Spencer 
							
						 
					 
					
						
						
							
						
						9f41a5fe85 
					 
					
						
						
							
							Initial version of automake Makefile.am file.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16885  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2004-10-10 20:43:57 +00:00 
						 
				 
			
				
					
						
							
							
								Reid Spencer 
							
						 
					 
					
						
						
							
						
						33189e787b 
					 
					
						
						
							
							Simplify the sys::Memory interface per Chris' request.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16318  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2004-09-13 22:38:11 +00:00 
						 
				 
			
				
					
						
							
							
								Reid Spencer 
							
						 
					 
					
						
						
							
						
						52b0ba6873 
					 
					
						
						
							
							Convert the Emitter to use the lib/System "Memory" interface instead of the  
						
						... 
						
						
						
						old SystemUtils.h interface to allocate RWX blocks of memory.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16286  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2004-09-11 04:31:03 +00:00 
						 
				 
			
				
					
						
							
							
								Reid Spencer 
							
						 
					 
					
						
						
							
						
						551ccae044 
					 
					
						
						
							
							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 
						
						
					 
					
						2004-09-01 22:55:40 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						174f226464 
					 
					
						
						
							
							Add a special case for argc,argv  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15802  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2004-08-16 01:07:04 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						cc22e9f406 
					 
					
						
						
							
							Finally, add support for calling arbitrary non-varargs functions.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15799  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2004-08-16 00:14:18 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						e5eab142a5 
					 
					
						
						
							
							Handle all nullary functions, of any valid return type.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15798  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2004-08-15 23:53:06 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						f7bedf447e 
					 
					
						
						
							
							Fine, go all of the way and check that the argument types are correct as well.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15797  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2004-08-15 23:39:59 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						d297aea5f2 
					 
					
						
						
							
							These only really work if returning int or void  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15796  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2004-08-15 23:34:48 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						7c45d7898b 
					 
					
						
						
							
							Handle zero arg function case  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15794  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2004-08-15 23:31:43 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						b47130c580 
					 
					
						
						
							
							Simplify code a bit, print error message always instead of asserting.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15793  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2004-08-15 23:29:50 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						beff74f821 
					 
					
						
						
							
							The cleanup is done.  Update comment.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14761  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2004-07-11 08:24:02 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						d5e1d9d5f4 
					 
					
						
						
							
							Goodbye macro hell, hello nice clean simple extensible code.  This change  
						
						... 
						
						
						
						also gives the JIT the ability to dynamically load targets. e.g.
lli -load libparisc.so -march=parisc foo.bc
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14750  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2004-07-11 04:02:06 +00:00 
						 
				 
			
				
					
						
							
							
								Reid Spencer 
							
						 
					 
					
						
						
							
						
						f86cafdda4 
					 
					
						
						
							
							Make error message consistent with the rest of LLVM by saying that bytecode  
						
						... 
						
						
						
						is read, not parsed.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14677  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2004-07-07 21:20:28 +00:00 
						 
				 
			
				
					
						
							
							
								Reid Spencer 
							
						 
					 
					
						
						
							
						
						e294753128 
					 
					
						
						
							
							Fix for bug 391.  
						
						... 
						
						
						
						Improve exeception handling around bcreader invocations.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14674  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2004-07-07 21:01:38 +00:00 
						 
				 
			
				
					
						
							
							
								Reid Spencer 
							
						 
					 
					
						
						
							
						
						954da37bb4 
					 
					
						
						
							
							Add #include <iostream> since Value.h does not #include it any more.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14622  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2004-07-04 12:19:56 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						abf1cd3ada 
					 
					
						
						
							
							Implement PR315: abort, don't warn, when missing external functions encountered  
						
						... 
						
						
						
						This fixes some critical problems building libstdc++ on cygwin.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13934  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2004-06-01 21:49:00 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						0cb162b3bb 
					 
					
						
						
							
							Use the SystemUtils.h file to do our dirty work.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13868  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2004-05-28 00:57:27 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						c52663c4ed 
					 
					
						
						
							
							This code is a real mess, but at least get the JIT *building* on platforms  
						
						... 
						
						
						
						(such as plan 9) without mmap.  Of course it won't RUN... but that's another
step.  :)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13839  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2004-05-27 18:03:56 +00:00 
						 
				 
			
				
					
						
							
							
								Brian Gaeke 
							
						 
					 
					
						
						
							
						
						aea1b58f1e 
					 
					
						
						
							
							Implement emitWordAt() for the JIT emitter.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13118  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2004-04-23 17:11:14 +00:00 
						 
				 
			
				
					
						
							
							
								Brian Gaeke 
							
						 
					 
					
						
						
							
						
						50872d5385 
					 
					
						
						
							
							Add a TargetData to the PassManager regardless of the TargetMachine.  
						
						... 
						
						
						
						This should unbreak the Sparc JIT again.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12949  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2004-04-14 17:45:52 +00:00 
						 
				 
			
				
					
						
							
							
								Brian Gaeke 
							
						 
					 
					
						
						
							
						
						d0f3c5e8b1 
					 
					
						
						
							
							My fix for PR274 broke the build on Darwin/PPC.  As I'm fairly certain this  
						
						... 
						
						
						
						bug only affects Linux systems that use GLIBC, I'm going to put ifdefs around
the array.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12269  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2004-03-10 17:38:28 +00:00 
						 
				 
			
				
					
						
							
							
								Brian Gaeke 
							
						 
					 
					
						
						
							
						
						00f0a29e1c 
					 
					
						
						
							
							Address PR274 - '[JIT] Programs cannot resolve the fstat function'  
						
						... 
						
						
						
						by trying to get the compiler to generate an undefined reference for it
and related functions which live in libc_nonshared.a on Linux.
Linkers... sigh.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12256  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2004-03-09 05:22:10 +00:00 
						 
				 
			
				
					
						
							
							
								Brian Gaeke 
							
						 
					 
					
						
						
							
						
						367b91d1bd 
					 
					
						
						
							
							Great sparc renaming fallout IV: Sparc --> SparcV9.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11844  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2004-02-25 22:09:36 +00:00 
						 
				 
			
				
					
						
							
							
								Brian Gaeke 
							
						 
					 
					
						
						
							
						
						150666fd82 
					 
					
						
						
							
							Great renaming part II: Sparc --> SparcV9 (also includes command-line options and Makefiles)  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11827  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2004-02-25 19:08:12 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						6c0398ed47 
					 
					
						
						
							
							There is no reason to #define fd  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11190  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2004-02-08 19:33:07 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						da79bd2322 
					 
					
						
						
							
							Print an error message if there is an error materialize the bc file.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11041  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2004-02-01 00:32:35 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						7301178aac 
					 
					
						
						
							
							Pass around IntrinsicLowering instances as appropriate.  
						
						... 
						
						
						
						Reimplement the Interpreters implementation of va_* to be more direct.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10627  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2003-12-28 09:44:37 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						ff0f1bb32a 
					 
					
						
						
							
							No longer run atExit functions from run()  
						
						... 
						
						
						
						rename run to runFunction
Genericize the runFunction code a little bit, though it still stinks
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10610  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2003-12-26 06:13:47 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						028565b14b 
					 
					
						
						
							
							This should not be needed anymore  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10558  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2003-12-20 10:19:18 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						c07ed13875 
					 
					
						
						
							
							Implement PR135, lazy emission of global variables  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10549  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2003-12-20 03:36:47 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						4d326fa9be 
					 
					
						
						
							
							Cleanup the JIT as per PR176.  This renames the VM class to JIT, and merges the  
						
						... 
						
						
						
						VM.cpp and JIT.cpp files into JIT.cpp.  This also splits some nasty code out
into TargetSelect.cpp so that people hopefully won't notice it.  :)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10544  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2003-12-20 01:46:27 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						1e60a9165d 
					 
					
						
						
							
							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 
						
						
					 
					
						2003-12-20 01:22:19 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						993bdcec00 
					 
					
						
						
							
							Implement the ExecutionEngine::getPointerToFunctionOrStub by forwarding the  
						
						... 
						
						
						
						request on to the TargetMachine if it supports the getJITStubForFunction method
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10431  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2003-12-12 07:12:02 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						c19aadee66 
					 
					
						
						
							
							Finegrainify namespacification  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10318  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2003-12-08 08:06:28 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						2c0a6a19ef 
					 
					
						
						
							
							Emit constants to one contiguous block, but this time, respect alignment constraints.  
						
						... 
						
						
						
						If this doesn't work Misha, feel free to revert it.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10267  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2003-11-30 04:23:21 +00:00