Windows Phone 8 / Windows RT initial support

Conflicts:

	makefile
This commit is contained in:
Alexey Pelykh
2013-01-28 17:20:52 +02:00
parent ed94eafe16
commit 0cbaad6495
13 changed files with 912 additions and 126 deletions

View File

@ -18,7 +18,7 @@
using namespace vm;
namespace {
namespace local {
const unsigned FrameBaseOffset = 0;
const unsigned FrameNextOffset = 1;
@ -2321,7 +2321,7 @@ interpret3(Thread* t, const int base)
object class_ = resolveClassInPool(t, frameMethod(t, frame), index - 1);
PROTECT(t, class_);
int32_t counts[dimensions];
int32_t* counts = new int32_t[dimensions];
for (int i = dimensions - 1; i >= 0; --i) {
counts[i] = popInt(t);
if (UNLIKELY(counts[i] < 0)) {
@ -2338,6 +2338,9 @@ interpret3(Thread* t, const int base)
populateMultiArray(t, array, counts, 0, dimensions);
pushObject(t, array);
delete[] counts;
counts = 0;
} goto loop;
case new_: {
@ -3100,7 +3103,7 @@ class MyProcessor: public Processor {
(&byteArrayBody(t, methodSpec(t, method), 0));
pushArguments(t, this_, spec, arguments);
return ::invoke(t, method);
return local::invoke(t, method);
}
virtual object
@ -3124,7 +3127,7 @@ class MyProcessor: public Processor {
(&byteArrayBody(t, methodSpec(t, method), 0));
pushArguments(t, this_, spec, arguments);
return ::invoke(t, method);
return local::invoke(t, method);
}
virtual object
@ -3148,7 +3151,7 @@ class MyProcessor: public Processor {
(&byteArrayBody(t, methodSpec(t, method), 0));
pushArguments(t, this_, spec, indirectObjects, arguments);
return ::invoke(t, method);
return local::invoke(t, method);
}
virtual object
@ -3174,7 +3177,7 @@ class MyProcessor: public Processor {
assert(t, ((methodFlags(t, method) & ACC_STATIC) == 0) xor (this_ == 0));
return ::invoke(t, method);
return local::invoke(t, method);
}
virtual object getStackTrace(vm::Thread* t, vm::Thread*) {
@ -3254,8 +3257,8 @@ namespace vm {
Processor*
makeProcessor(System* system, Allocator* allocator, bool)
{
return new (allocator->allocate(sizeof(MyProcessor)))
MyProcessor(system, allocator);
return new (allocator->allocate(sizeof(local::MyProcessor)))
local::MyProcessor(system, allocator);
}
} // namespace vm