Joshua Warner
9f36a8e0ec
prepare to move stack manipulation out of CallEvent
2014-05-30 22:41:11 -06:00
Joshua Warner
ae534bed5f
cleanup
2014-05-30 22:41:11 -06:00
Joshua Warner
cfc3bd212b
remove stack manipulation from NativeCallingConvention calls
2014-05-30 22:41:11 -06:00
Joshua Warner
fe2962830c
remove unused CallEvent::argumentStack variable, prepare to remove stack manipulation from NativeCallingConvention calls
2014-05-30 22:41:11 -06:00
Joshua Warner
d2e9911161
add asserts in CallEvent
2014-05-30 22:41:11 -06:00
Joshua Warner
1318b9ca2a
remove redundant CallEvent::argumentCount parameter
2014-05-30 22:41:11 -06:00
Joshua Warner
f9cbca8f7d
pair up stack for NativeCallingConvention
2014-05-30 22:41:11 -06:00
Joshua Warner
69edeaadee
remove redundant Compiler::stackCall footprint argument
2014-05-30 22:41:11 -06:00
Joshua Warner
3c9a453d17
add extra asserts in CallEvent
2014-05-30 22:41:11 -06:00
Joshua Warner
97ce7d2b4e
pass CallEvent arguments in Slice as well
2014-05-30 22:41:10 -06:00
Joshua Warner
4e00a1e304
add Frame::referenceStackCall
2014-05-30 22:41:10 -06:00
Joshua Warner
3aa85f2494
move return handling into Frame::stackCall
2014-05-30 22:41:10 -06:00
Joshua Warner
ad3ec1abf3
introduce Frame::stackCall util
2014-05-30 22:41:10 -06:00
Joshua Warner
86a98240b4
remove useless static_casts to retrieve ir::Value::type
2014-05-30 22:41:10 -06:00
Joshua Warner
479c056b2c
move Compiler::Operand to ir::Value
2014-05-30 22:41:10 -06:00
Joshua Warner
865041b688
add asserts
2014-05-30 22:38:10 -06:00
Joshua Warner
42fec084b0
expose Value::type and add asserts
2014-05-30 22:16:39 -06:00
Joshua Warner
00253ce528
remove redundant Compiler::load srcSelectType parameter
2014-05-30 22:16:39 -06:00
Joshua Warner
4c4cc49510
use Compiler::truncateThenExtend in more places
2014-05-30 22:16:39 -06:00
Joshua Warner
26d8e8aa1f
add Compiler::truncateThenExtend
2014-05-30 22:16:39 -06:00
Joshua Warner
99fa560257
merge Compiler::load and Compiler::loadz
2014-05-30 22:16:39 -06:00
Joshua Warner
85f114ea0f
use ir::Type in Compiler::loadLocal
2014-05-30 22:16:39 -06:00
Joshua Warner
53b68a693d
add more aggressive checks to Compiler::load*
2014-05-30 22:16:38 -06:00
Joshua Warner
27ea503233
switch Compiler::load* to use ir::Type rather than sizes
2014-05-30 22:16:38 -06:00
Joshua Warner
9c98986f99
remove redundant Compiler::store dstType parameter
2014-05-30 22:16:38 -06:00
Joshua Warner
0ee3eec478
add extra type checks to Compiler::store
2014-05-30 22:16:38 -06:00
Joshua Warner
8b1739dc0f
remove redundant Compiler::stackCall resultSize parameter
2014-05-30 22:16:38 -06:00
Joshua Warner
1d466a800e
remove redundant Compiler::call resultSize parameter
2014-05-30 22:16:38 -06:00
Joshua Warner
9805ff94b4
remove redundant Compiler::memory scale parameter
2014-05-30 22:16:38 -06:00
Joshua Warner
f9b781149e
add extra type checks to Compiler::store and Compiler::memory
2014-05-30 22:16:38 -06:00
Joshua Warner
1fc6011bf7
add extra flavor type check to Compiler::store
2014-05-30 22:16:37 -06:00
Joshua Warner
aef5acce84
add flavor type check to Compiler::store
2014-05-30 22:16:35 -06:00
Joshua Warner
2ed52c05a8
use ir::Type in Compiler::store
2014-05-30 21:19:33 -06:00
Joshua Warner
8af9bb8297
change Compiler::register_ to Compiler::threadRegister, since it was only used as such
2014-05-30 21:19:32 -06:00
Joshua Warner
2d444830d0
use ir::Type in Compiler::unaryOp and Compiler::binaryOp
2014-05-30 21:19:32 -06:00
Joshua Warner
6ed7681dc0
use ir::Type in f2i and friends, instead of aSize
2014-05-30 21:19:27 -06:00
Joshua Warner
704c05f818
use ir::Type in place of Compiler::OperandType
2014-05-29 15:30:46 -06:00
Joshua Warner
d8914a9646
use ir::Type in Compiler::initLocal
2014-05-29 15:30:46 -06:00
Joshua Warner
4bfb359cdd
use ir::Type in Compiler::pop
2014-05-29 15:30:46 -06:00
Joshua Warner
13342d28be
use ir::Type in Compiler::save
2014-05-29 15:30:46 -06:00
Joshua Warner
75f0812f7a
remove unused Compiler::push method
2014-05-29 15:30:46 -06:00
Joshua Warner
49a5a9f398
use ir::Type in Compiler::push
2014-05-29 15:30:45 -06:00
Joshua Warner
d9fee1025c
use ir::Type in Compiler::return_
2014-05-29 15:30:45 -06:00
Joshua Warner
587b1e3eda
use ir::Type in place of lir::ValueType in Value
2014-05-29 15:30:45 -06:00
Joshua Warner
855534b152
introduce ir::Type and begin migrating i2f and friends to it
2014-05-29 15:30:45 -06:00
Joel Dice
6d68ae7c13
Merge pull request #268 from joshuawarner32/clean-shutdown
...
cleanly destroy MyProcessor
2014-05-20 18:30:05 -06:00
Joshua Warner
e2f613e063
cleanly destroy MyProcessor to allow for creating/destroying VMs in the same process multiple times
2014-05-20 17:26:11 -06:00
Joshua Warner
7ee03be2e9
add simple version flag
2014-05-20 13:13:17 -06:00
Joel Dice
4a83b671b3
fix crash on exit due to order of operations bug in ~RawMonitorResource
...
The problem (which we've only been able to reproduce consistently with
the openjdk-src process=interpret build on Linux virtual machines) was
a race condition during VM shutdown. Thread "A" would exit, see there
were other threads still running and thus enter ZombieState, which
involves acquiring and releasing a lock using RawMonitorResource.
Then the last thread (thread "B") would exit, wait for thread "A" to
release the lock, then shut down the VM, freeing all memory. However,
thread "A" writes to its Thread object one last time after releasing
the lock (in ~Resource, the destructor of the superclass of
RawMonitorResource, which sets Thread::resource). If thread "B" frees
that Thread before ~Resource runs, we end up writing to freed memory.
Thus, we need to update Thread::resource before releasing the lock.
Apparently C++ destructors run in order from most derived to least
derived, which is not what we want here. My solution to split
Resource into two classes, one that has no destructor and another that
extends it (called AutoResource) which does hafe a destructor. Now
all the classes which used to extend Resource extend AutoResource,
except for RawMonitorResource, which extends Resource directly so it
can control the order of operations.
2014-05-10 23:25:59 -06:00
Joel Dice
0800508b4e
move Runtime.freeMemory and totalMemory to builtin.cpp
...
This allows them to be shared between the Avian and Android class
library builds.
This commit also disables the URL test in Misc.java on Android, since
it's known to fail, and we still want to know whether the other tests
pass.
2014-05-10 18:56:04 -06:00