| OLD | NEW | 
|     1 // Copyright 2011 the V8 project authors. All rights reserved. |     1 // Copyright 2012 the V8 project authors. All rights reserved. | 
|     2 // Redistribution and use in source and binary forms, with or without |     2 // Redistribution and use in source and binary forms, with or without | 
|     3 // modification, are permitted provided that the following conditions are |     3 // modification, are permitted provided that the following conditions are | 
|     4 // met: |     4 // met: | 
|     5 // |     5 // | 
|     6 //     * Redistributions of source code must retain the above copyright |     6 //     * Redistributions of source code must retain the above copyright | 
|     7 //       notice, this list of conditions and the following disclaimer. |     7 //       notice, this list of conditions and the following disclaimer. | 
|     8 //     * Redistributions in binary form must reproduce the above |     8 //     * Redistributions in binary form must reproduce the above | 
|     9 //       copyright notice, this list of conditions and the following |     9 //       copyright notice, this list of conditions and the following | 
|    10 //       disclaimer in the documentation and/or other materials provided |    10 //       disclaimer in the documentation and/or other materials provided | 
|    11 //       with the distribution. |    11 //       with the distribution. | 
| (...skipping 1977 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|  1989     str(exponent_reg, MemOperand(scratch1, Register::kSizeInBytes)); |  1989     str(exponent_reg, MemOperand(scratch1, Register::kSizeInBytes)); | 
|  1990   } |  1990   } | 
|  1991   bind(&done); |  1991   bind(&done); | 
|  1992 } |  1992 } | 
|  1993  |  1993  | 
|  1994  |  1994  | 
|  1995 void MacroAssembler::CheckMap(Register obj, |  1995 void MacroAssembler::CheckMap(Register obj, | 
|  1996                               Register scratch, |  1996                               Register scratch, | 
|  1997                               Handle<Map> map, |  1997                               Handle<Map> map, | 
|  1998                               Label* fail, |  1998                               Label* fail, | 
|  1999                               SmiCheckType smi_check_type) { |  1999                               SmiCheckType smi_check_type, | 
 |  2000                               MapCheckMode mode) { | 
|  2000   if (smi_check_type == DO_SMI_CHECK) { |  2001   if (smi_check_type == DO_SMI_CHECK) { | 
|  2001     JumpIfSmi(obj, fail); |  2002     JumpIfSmi(obj, fail); | 
|  2002   } |  2003   } | 
 |  2004  | 
 |  2005   Label success; | 
|  2003   ldr(scratch, FieldMemOperand(obj, HeapObject::kMapOffset)); |  2006   ldr(scratch, FieldMemOperand(obj, HeapObject::kMapOffset)); | 
|  2004   mov(ip, Operand(map)); |  2007   cmp(scratch, Operand(map)); | 
|  2005   cmp(scratch, ip); |  2008   if (mode == ALLOW_ELEMENT_TRANSITION_MAPS) { | 
 |  2009     bool ignore; | 
 |  2010     Map* transitioned_double_map = | 
 |  2011         map->LookupElementsTransitionMap(FAST_DOUBLE_ELEMENTS, &ignore); | 
 |  2012     ASSERT(transitioned_double_map == NULL || | 
 |  2013            map->elements_kind() == FAST_SMI_ONLY_ELEMENTS); | 
 |  2014     Map* transitioned_fast_element_map = | 
 |  2015         map->LookupElementsTransitionMap(FAST_ELEMENTS, &ignore); | 
 |  2016     ASSERT(transitioned_fast_element_map == NULL || | 
 |  2017            map->elements_kind() != FAST_ELEMENTS); | 
 |  2018     if (transitioned_fast_element_map != NULL) { | 
 |  2019       b(eq, &success); | 
 |  2020       cmp(scratch, Operand(Handle<Map>(transitioned_fast_element_map))); | 
 |  2021     } | 
 |  2022  | 
 |  2023     if (transitioned_double_map != NULL) { | 
 |  2024       b(eq, &success); | 
 |  2025       cmp(scratch, Operand(Handle<Map>(transitioned_double_map))); | 
 |  2026     } | 
 |  2027   } | 
|  2006   b(ne, fail); |  2028   b(ne, fail); | 
 |  2029   bind(&success); | 
|  2007 } |  2030 } | 
|  2008  |  2031  | 
|  2009  |  2032  | 
|  2010 void MacroAssembler::CheckMap(Register obj, |  2033 void MacroAssembler::CheckMap(Register obj, | 
|  2011                               Register scratch, |  2034                               Register scratch, | 
|  2012                               Heap::RootListIndex index, |  2035                               Heap::RootListIndex index, | 
|  2013                               Label* fail, |  2036                               Label* fail, | 
|  2014                               SmiCheckType smi_check_type) { |  2037                               SmiCheckType smi_check_type) { | 
|  2015   if (smi_check_type == DO_SMI_CHECK) { |  2038   if (smi_check_type == DO_SMI_CHECK) { | 
|  2016     JumpIfSmi(obj, fail); |  2039     JumpIfSmi(obj, fail); | 
| (...skipping 1608 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|  3625 void CodePatcher::EmitCondition(Condition cond) { |  3648 void CodePatcher::EmitCondition(Condition cond) { | 
|  3626   Instr instr = Assembler::instr_at(masm_.pc_); |  3649   Instr instr = Assembler::instr_at(masm_.pc_); | 
|  3627   instr = (instr & ~kCondMask) | cond; |  3650   instr = (instr & ~kCondMask) | cond; | 
|  3628   masm_.emit(instr); |  3651   masm_.emit(instr); | 
|  3629 } |  3652 } | 
|  3630  |  3653  | 
|  3631  |  3654  | 
|  3632 } }  // namespace v8::internal |  3655 } }  // namespace v8::internal | 
|  3633  |  3656  | 
|  3634 #endif  // V8_TARGET_ARCH_ARM |  3657 #endif  // V8_TARGET_ARCH_ARM | 
| OLD | NEW |