Commit Graph

1246 Commits

Author SHA1 Message Date
5a8ffcd79b implement moveZRR and moveZMR 2009-02-28 15:00:12 -07:00
60c4bede39 fix undefined-order-of-operations bug in Frame::dupped 2009-02-28 14:41:05 -07:00
3e6c30a4b5 always return an 8-byte value (or void) from native functions called from Java
This is important on the 32-bit OS X PowerPC ABI, since the location
of the low 32-bits of a return value change depending on whether the
entire value is 64-bits or not.
2009-02-28 14:20:43 -07:00
c5dd97ffea ensure that we release temporaries back to the compiler in powerpc.cpp; allow the first operand of a comparison to be a constant 2009-02-28 13:41:37 -07:00
a2d2564d83 restore changes clobbered by commit 5a08062 2009-02-28 12:58:34 -07:00
1249b11080 fix build breakage 2009-02-28 12:47:47 -07:00
46a6744050 Merge commit 'origin/powerpc' into powerpc 2009-02-28 12:44:31 -07:00
f8d7bea7e8 implement various compare and branch instructions 2009-02-28 12:36:02 -07:00
f22ce3f996 fix parameter offset calculation in invokeNative2 2009-02-28 12:33:26 -07:00
JET
5a08062190 prelim 64-bit mult and shift support 2009-02-27 16:54:20 -07:00
8ecd6a0394 fix and optimize andC 2009-02-26 18:56:57 -07:00
4999c08e32 fix stack offset calculation for powerpc
This may break x86, in which case we'll iterate until they both work.
2009-02-26 18:54:25 -07:00
73aa499371 clean up offsetToFrameIndex code 2009-02-26 18:53:35 -07:00
d7d3dd5055 various bugfixes, especially concerning frame allocation and offset calculation 2009-02-25 20:49:42 -07:00
6957492c7a ignore base argument in powerpc version of vmJump and move thread argument into correct register 2009-02-25 20:47:38 -07:00
b539d7b1e0 Merge commit 'origin/powerpc' into powerpc
Conflicts:
	src/powerpc.cpp
2009-02-25 18:31:21 -07:00
08af5deb36 implement andC and moveAR; fix MyArchitecture::nextFrame 2009-02-25 18:16:38 -07:00
09c96a3063 simplify longCompare in x86.cpp such that the move function pointer parameter is eliminated and moveCR is called directly 2009-02-25 18:13:18 -07:00
2554673dda call c->arch->plan in CallEvent ctor to ensure the address operand is placed into the proper operand type for the call instruction 2009-02-25 18:11:41 -07:00
c148369d57 added multiply and divide instructions and intermediates 2009-02-25 09:37:44 -07:00
0832c740fc implement a few conditional and branch instructions 2009-02-24 18:29:04 -07:00
571615a79f fix stack space calculation in compile-powerpc.S 2009-02-24 18:28:05 -07:00
299f8542b7 rename fooCRR and fooRRR to fooC and fooR, respectively; add entries to ternary operation table in populateTables 2009-02-24 09:13:11 -07:00
b292cbb7f4 mask displacement in instruction format D; fix MyArchitecture::frameIp to look for return address at an 8-byte offset from the stack pointer 2009-02-24 08:04:55 -07:00
eef5047a52 various bugfixes in powerpc.cpp 2009-02-23 21:25:15 -07:00
ee90d7bd2c merged ppc changes 2009-02-23 20:57:25 -07:00
JET
2d09f57cbd added instructions 2009-02-23 19:16:42 -07:00
da8520754d progress towards compiling and running simple methods on powerpc 2009-02-23 19:11:32 -07:00
79a1d0451f fix GCC 4.2 -Os uninitialized variable warning in windows.cpp 2009-02-22 17:44:11 -07:00
8add9db0b2 fix GCC 4.x aliasing warnings in windows.cpp 2009-02-22 17:04:58 -07:00
9a9b2c611a sketch of new powerpc.cpp implementation 2009-02-21 12:30:25 -07:00
a9e85e5de8 fix compare instruction syntax in compile-powerpc.S 2009-02-18 17:46:07 -07:00
324caaf98b add size parameter to Assembler::returnLow since the register used depends on the return value size on PowerPC 2009-02-17 18:19:31 -07:00
c88e3fa230 ensure stack alignment in compile-x86.S and update vmInvoke to accept frame size parameter 2009-02-16 19:49:28 -07:00
17b4c20435 fix windows build 2009-02-16 19:48:29 -07:00
ba4e2a6582 rename compile.S to compile-x86.S and add compile-powerpc.S 2009-02-16 08:21:12 -07:00
773e229112 fix powerpc native call bugs 2009-02-15 14:24:20 -07:00
bec13838c1 Merge branch 'powerpc' of oss.readytalk.com:/var/local/git/avian 2009-02-15 12:34:01 -07:00
cea5a9315d fix block delimiting code in compile.cpp to avoid cycles and nested blocks 2009-02-15 11:11:00 -07:00
7803663fc9 fix block delimiting code in compiler.cpp to minimize the number of blocks needed
This exposed bugs in x86.cpp concerning alignment padding which are now
fixed.
2009-02-14 17:52:44 -07:00
4b2d74f656 fix merge conflict bug preventing the bootimage code from seeing, marking, and fixing jsr addresses 2009-02-14 14:23:23 -07:00
f58f7b3bdf fix bugs pertaining to tracking reads and and value sites across subroutines (jsr and ret instructions) 2009-02-14 13:26:39 -07:00
93142bb952 support filtering based on class name, method name, and method spec in
bootimage.cpp

This is useful for debugging the compiler, since it allows you to
compile one method in particular if that's where a bug manifests itself.
2009-02-14 13:23:31 -07:00
ec5c64d472 fix Cygwin build 2009-02-13 17:03:46 -07:00
e3257134c9 fix merge-related regression affecting bootimage build 2009-02-09 19:00:53 -07:00
9b0d6854ec fix merge conflicts 2009-02-09 16:22:51 -07:00
a1ec71423e Merge branch 'master' into powerpc
Conflicts:

	makefile
	src/assembler.h
	src/binaryToMacho.cpp
	src/compile.cpp
	src/compiler.cpp
	src/x86.cpp
2009-02-09 16:22:01 -07:00
a1fc8a4dac add site to result in MemoryEvent::compile regardless of whether the result is live, since the memory location may be used as the target of a move and we need to keep the reference count of the base and index registers nonzero 2009-02-08 19:08:56 -07:00
29616c4abc freeze target site when using temporary in maybeMove 2009-02-08 18:58:33 -07:00
4ca45ffa41 fix two bugs concerning tracking available registers and reserving them when necessary 2009-02-08 16:20:28 -07:00