diff options
Diffstat (limited to 'deps/v8/src/ia32/macro-assembler-ia32.h')
-rw-r--r-- | deps/v8/src/ia32/macro-assembler-ia32.h | 20 |
1 files changed, 16 insertions, 4 deletions
diff --git a/deps/v8/src/ia32/macro-assembler-ia32.h b/deps/v8/src/ia32/macro-assembler-ia32.h index e6a17417d8..c969a6f71b 100644 --- a/deps/v8/src/ia32/macro-assembler-ia32.h +++ b/deps/v8/src/ia32/macro-assembler-ia32.h @@ -1,4 +1,4 @@ -// Copyright 2011 the V8 project authors. All rights reserved. +// Copyright 2012 the V8 project authors. All rights reserved. // Redistribution and use in source and binary forms, with or without // modification, are permitted provided that the following conditions are // met: @@ -251,7 +251,7 @@ class MacroAssembler: public Assembler { // --------------------------------------------------------------------------- // JavaScript invokes - // Setup call kind marking in ecx. The method takes ecx as an + // Set up call kind marking in ecx. The method takes ecx as an // explicit first parameter to make the code more readable at the // call sites. void SetCallKind(Register dst, CallKind kind); @@ -356,13 +356,24 @@ class MacroAssembler: public Assembler { Label* fail, bool specialize_for_processor); + // Compare an object's map with the specified map and its transitioned + // elements maps if mode is ALLOW_ELEMENT_TRANSITION_MAPS. FLAGS are set with + // result of map compare. If multiple map compares are required, the compare + // sequences branches to early_success. + void CompareMap(Register obj, + Handle<Map> map, + Label* early_success, + CompareMapMode mode = REQUIRE_EXACT_MAP); + // Check if the map of an object is equal to a specified map and branch to // label if not. Skip the smi check if not required (object is known to be a - // heap object) + // heap object). If mode is ALLOW_ELEMENT_TRANSITION_MAPS, then also match + // against maps that are ElementsKind transition maps of the specificed map. void CheckMap(Register obj, Handle<Map> map, Label* fail, - SmiCheckType smi_check_type); + SmiCheckType smi_check_type, + CompareMapMode mode = REQUIRE_EXACT_MAP); // Check if the map of an object is equal to a specified map and branch to a // specified target if equal. Skip the smi check if not required (object is @@ -486,6 +497,7 @@ class MacroAssembler: public Assembler { Register scratch, Label* miss); + void GetNumberHash(Register r0, Register scratch); void LoadFromNumberDictionary(Label* miss, Register elements, |