X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;ds=inline;f=src%2Fv8%2Fsrc%2Fia32%2Fmacro-assembler-ia32.h;h=8bc35bb8fcfc63ce01d114a4b18fc057d692a9d2;hb=ff3e2503a20db9193d323c1d19c38c68004dec4a;hp=e109b20990b99507ce17a26e966213737f6778d0;hpb=7338fba38ba696536d1cc9d389afd716a6ab2fe6;p=platform%2Fframework%2Fweb%2Fcrosswalk.git diff --git a/src/v8/src/ia32/macro-assembler-ia32.h b/src/v8/src/ia32/macro-assembler-ia32.h index e109b20..8bc35bb 100644 --- a/src/v8/src/ia32/macro-assembler-ia32.h +++ b/src/v8/src/ia32/macro-assembler-ia32.h @@ -652,6 +652,15 @@ class MacroAssembler: public Assembler { Register scratch2, Label* gc_required); + // Allocate a float32x4 or int32x4 object in new space with undefined value. + // Returns tagged pointer in result register, or jumps to gc_required if new + // space is full. + void AllocateSIMDHeapObject(int size, + Register result, + Register scratch, + Label* gc_required, + Heap::RootListIndex map_index); + // Allocate a sequential string. All the header fields of the string object // are initialized. void AllocateTwoByteString(Register result, @@ -815,7 +824,7 @@ class MacroAssembler: public Assembler { // from handle and propagates exceptions. Clobbers ebx, edi and // caller-save registers. Restores context. On return removes // stack_space * kPointerSize (GCed). - void CallApiFunctionAndReturn(Address function_address, + void CallApiFunctionAndReturn(Register function_address, Address thunk_address, Operand thunk_last_arg, int stack_space, @@ -899,6 +908,13 @@ class MacroAssembler: public Assembler { inline bool AllowThisStubCall(CodeStub* stub); // --------------------------------------------------------------------------- + // SIMD macros. + void absps(XMMRegister dst); + void negateps(XMMRegister dst); + void notps(XMMRegister dst); + void pnegd(XMMRegister dst); + + // --------------------------------------------------------------------------- // String utilities. // Generate code to do a lookup in the number string cache. If the number in @@ -1082,6 +1098,14 @@ inline Operand FieldOperand(Register object, } +inline Operand FixedArrayElementOperand(Register array, + Register index_as_smi, + int additional_offset = 0) { + int offset = FixedArray::kHeaderSize + additional_offset * kPointerSize; + return FieldOperand(array, index_as_smi, times_half_pointer_size, offset); +} + + inline Operand ContextOperand(Register context, int index) { return Operand(context, Context::SlotOffset(index)); }