Reset cr6 on vector compare, fix NOT_V128.

This commit is contained in:
Ben Vanik
2014-10-26 22:19:02 -07:00
parent d7698368fc
commit c13adeb9cf
4 changed files with 6 additions and 1 deletions

View File

@@ -301,6 +301,8 @@ void PPCHIRBuilder::UpdateCR6(Value* src_value) {
// Testing for all 1's and all 0's.
// if (Rc) CR6 = all_equal | 0 | none_equal | 0
// TODO(benvanik): efficient instruction?
StoreContext(offsetof(PPCContext, cr6.cr6_0), LoadZero(INT8_TYPE));
StoreContext(offsetof(PPCContext, cr6.cr6_2), LoadZero(INT8_TYPE));
StoreContext(offsetof(PPCContext, cr6.cr6_all_equal),
IsFalse(Not(src_value)));
StoreContext(offsetof(PPCContext, cr6.cr6_none_equal), IsFalse(src_value));