fix process=interpret build

This commit is contained in:
Joel Dice 2009-10-10 18:23:14 -06:00
parent 44a6620aa1
commit b4c1c6badf

View File

@ -1579,6 +1579,7 @@ interpret(Thread* t)
and (fieldCode(t, field) == DoubleField and (fieldCode(t, field) == DoubleField
or fieldCode(t, field) == LongField))) or fieldCode(t, field) == LongField)))
{ {
PROTECT(t, field);
acquire(t, field); acquire(t, field);
} }
@ -2560,6 +2561,9 @@ interpret(Thread* t)
object field = resolveField(t, frameMethod(t, frame), index - 1); object field = resolveField(t, frameMethod(t, frame), index - 1);
if (UNLIKELY(exception)) goto throw_; if (UNLIKELY(exception)) goto throw_;
assert(t, (fieldFlags(t, field) & ACC_STATIC) == 0);
PROTECT(t, field);
if (UNLIKELY(fieldFlags(t, field) & ACC_VOLATILE)) { if (UNLIKELY(fieldFlags(t, field) & ACC_VOLATILE)) {
if (BytesPerWord == 4 if (BytesPerWord == 4
and (fieldCode(t, field) == DoubleField and (fieldCode(t, field) == DoubleField
@ -2571,8 +2575,6 @@ interpret(Thread* t)
} }
} }
assert(t, (fieldFlags(t, field) & ACC_STATIC) == 0);
switch (fieldCode(t, field)) { switch (fieldCode(t, field)) {
case ByteField: case ByteField:
case BooleanField: case BooleanField:
@ -2650,6 +2652,10 @@ interpret(Thread* t)
object field = resolveField(t, frameMethod(t, frame), index - 1); object field = resolveField(t, frameMethod(t, frame), index - 1);
if (UNLIKELY(exception)) goto throw_; if (UNLIKELY(exception)) goto throw_;
assert(t, fieldFlags(t, field) & ACC_STATIC);
PROTECT(t, field);
if (UNLIKELY(fieldFlags(t, field) & ACC_VOLATILE)) { if (UNLIKELY(fieldFlags(t, field) & ACC_VOLATILE)) {
if (BytesPerWord == 4 if (BytesPerWord == 4
and (fieldCode(t, field) == DoubleField and (fieldCode(t, field) == DoubleField
@ -2661,10 +2667,6 @@ interpret(Thread* t)
} }
} }
assert(t, fieldFlags(t, field) & ACC_STATIC);
PROTECT(t, field);
if (UNLIKELY(classInit(t, fieldClass(t, field), 3))) goto invoke; if (UNLIKELY(classInit(t, fieldClass(t, field), 3))) goto invoke;
object table = classStaticTable(t, fieldClass(t, field)); object table = classStaticTable(t, fieldClass(t, field));
@ -3092,8 +3094,8 @@ class MyProcessor: public Processor {
uint16_t offset, uint16_t offset,
object name, object name,
object spec, object spec,
object class_,
object addendum, object addendum,
object class_,
object code) object code)
{ {
return vm::makeMethod return vm::makeMethod
@ -3116,8 +3118,8 @@ class MyProcessor: public Processor {
object virtualTable, object virtualTable,
object fieldTable, object fieldTable,
object methodTable, object methodTable,
object staticTable,
object addendum, object addendum,
object staticTable,
object loader, object loader,
unsigned vtableLength UNUSED) unsigned vtableLength UNUSED)
{ {