GCthings don't have a single tag, so mutate the condition to actually do a set-test. (bug 792239, r=dvander)

This commit is contained in:
Marty Rosenberg 2012-09-20 17:47:13 -04:00
parent 6d50fa80a7
commit fe6c81e374

View File

@ -2084,7 +2084,7 @@ MacroAssemblerARMCompat::testGCThing(Assembler::Condition cond, const Address &a
JS_ASSERT(cond == Equal || cond == NotEqual);
extractTag(address, ScratchRegister);
ma_cmp(ScratchRegister, ImmTag(JSVAL_LOWER_INCL_TAG_OF_GCTHING_SET));
return cond;
return cond == Equal ? AboveOrEqual : Below;
}
Assembler::Condition
@ -2093,7 +2093,7 @@ MacroAssemblerARMCompat::testGCThing(Assembler::Condition cond, const BaseIndex
JS_ASSERT(cond == Equal || cond == NotEqual);
extractTag(address, ScratchRegister);
ma_cmp(ScratchRegister, ImmTag(JSVAL_LOWER_INCL_TAG_OF_GCTHING_SET));
return cond;
return cond == Equal ? AboveOrEqual : Below;
}
Assembler::Condition