vm: clean up baroque jit safepoint logic

db4
Joe Groff 2011-11-22 22:48:41 -08:00
parent 15c4b7aa57
commit 4df56f31f2
1 changed files with 4 additions and 11 deletions

View File

@ -100,10 +100,7 @@ bool quotation_jit::word_stack_frame_p(cell obj)
bool quotation_jit::word_safepoint_p(cell obj) bool quotation_jit::word_safepoint_p(cell obj)
{ {
if (to_boolean(untag<word>(obj)->subprimitive) && special_subprimitive_p(obj)) return !special_subprimitive_p(obj);
return false;
else
return true;
} }
bool quotation_jit::safepoint_p() bool quotation_jit::safepoint_p()
@ -116,19 +113,15 @@ bool quotation_jit::safepoint_p()
switch(tagged<object>(obj).type()) switch(tagged<object>(obj).type())
{ {
case WORD_TYPE: case WORD_TYPE:
if(i != length - 1 || word_stack_frame_p(obj)) if(!word_safepoint_p(obj))
return true; return false;
break;
case QUOTATION_TYPE:
if(fast_dip_p(i,length) || fast_2dip_p(i,length) || fast_3dip_p(i,length))
return true;
break; break;
default: default:
break; break;
} }
} }
return false; return true;
} }
bool quotation_jit::stack_frame_p() bool quotation_jit::stack_frame_p()