search for: stackspace

Displaying 9 results from an estimated 9 matches for "stackspace".

2009 Feb 24
0
[LLVMdev] Broke my tail (call)
...egisters holding their first-class fields, >> which may of course be passed on the stack when physical registers run >> short, in exactly the same manner as with lots of scalar arguments. >> > > Exactly. In case of tailcall(+fastcc?), can't this be done in constant stackspace? First time you allocate stackspace to pass the parameters, then all other tailcalls will reuse the stackspace that it got its parameters in, to pass parameters to the next tailcall. Best regards --Edwin
2009 Feb 24
3
[LLVMdev] Broke my tail (call)
On Tuesday 24 February 2009 00:16:37 Dan Gohman wrote: > On Feb 23, 2009, at 5:59 AM, Anton Korobeynikov wrote: > > This is not true in general and highly target- and CC- dependent. For > > example, you can ran out of registers and then your struct can be > > passed > > partly in registers and partly on stack. And depending on the stack > > frame size of the callee
2007 Apr 04
0
Branch 'as' - 9 commits - libswfdec/swfdec_as_context.c libswfdec/swfdec_as_frame.c libswfdec/swfdec_as_frame.h libswfdec/swfdec_as_function.c libswfdec/swfdec_as_interpret.c libswfdec/swfdec_as_stack.c libswfdec/swfdec_as_stack.h
...script->buffer, + data - frame->script->buffer->data, len); } static void swfdec_action_push (SwfdecAsContext *cx, guint action, const guint8 *data, guint len) { - /* FIXME: supply API for this */ + SwfdecAsStack *stack = cx->frame->stack; SwfdecBits bits; - guint stackspace = cx->fp->spend - cx->fp->sp; swfdec_bits_init_data (&bits, data, len); - while (swfdec_bits_left (&bits) && stackspace-- > 0) { + while (swfdec_bits_left (&bits)) { guint type = swfdec_bits_get_u8 (&bits); SWFDEC_LOG ("push type %u"...
2007 Mar 09
0
17 commits - libswfdec/js libswfdec/swfdec_js.c libswfdec/swfdec_js_global.c libswfdec/swfdec_js.h libswfdec/swfdec_js_movie.c libswfdec/swfdec_movie.c libswfdec/swfdec_player.c libswfdec/swfdec_player_internal.h libswfdec/swfdec_root_movie.c
...ents) { + n_elements--; + fp->spbase[n_elements] = JSVAL_VOID; + } + return JS_TRUE; +} + static gboolean swfdec_action_has_register (JSContext *cx, guint i) { @@ -452,10 +488,11 @@ swfdec_action_constant_pool (JSContext * } static JSBool -swfdec_action_push (JSContext *cx, guint stackspace, const guint8 *data, guint len) +swfdec_action_push (JSContext *cx, guint action, const guint8 *data, guint len) { /* FIXME: supply API for this */ SwfdecBits bits; + guint stackspace = cx->fp->spend - cx->fp->sp; swfdec_bits_init_data (&bits, data, len); while (swfd...
2007 Jan 18
0
Branch 'interpreter' - 4 commits - libswfdec/js libswfdec/swfdec_bits.c libswfdec/swfdec_bits.h libswfdec/swfdec_codec_screen.c libswfdec/swfdec_image.c libswfdec/swfdec_script.c libswfdec/swfdec_swf_decoder.c libswfdec/swfdec_tag.c
...tant_pool_new_from_action (data, len); + if (pool == NULL) + return JS_FALSE; + if (cx->fp->constant_pool) + swfdec_constant_pool_free (cx->fp->constant_pool); + cx->fp->constant_pool = pool; + return JS_TRUE; +} + +static JSBool +swfdec_action_push (JSContext *cx, guint stackspace, const guint8 *data, guint len) +{ + /* FIXME: supply API for this */ + SwfdecBits bits; + + swfdec_bits_init_data (&bits, data, len); + while (swfdec_bits_left (&bits) && stackspace-- > 0) { + guint type = swfdec_bits_get_u8 (&bits); + SWFDEC_LOG ("push type %...
2007 Apr 04
0
Branch 'as' - 4 commits - libswfdec/Makefile.am libswfdec/swfdec_as_context.c libswfdec/swfdec_as_frame.c libswfdec/swfdec_as_interpret.c libswfdec/swfdec_as_interpret.h libswfdec/swfdec_as_object.c libswfdec/swfdec_as_types.c libswfdec/swfdec_as_types.h
..._pool) + swfdec_constant_pool_free (cx->fp->constant_pool); + cx->fp->constant_pool = pool; + return JS_TRUE; +} + +static void +swfdec_action_push (SwfdecAsContext *cx, guint action, const guint8 *data, guint len) +{ + /* FIXME: supply API for this */ + SwfdecBits bits; + guint stackspace = cx->fp->spend - cx->fp->sp; + + swfdec_bits_init_data (&bits, data, len); + while (swfdec_bits_left (&bits) && stackspace-- > 0) { + guint type = swfdec_bits_get_u8 (&bits); + SWFDEC_LOG ("push type %u", type); + switch (type) { + case...
2012 Nov 09
0
[LLVMdev] problem trying to write an LLVM register-allocation pass
...erand is a reg } // end iterate over operands } // end iterate over instructions } // end iterate over blocks return vregSet; } //********************************************************************** // setAllVreg // // for each vreg in the given set: // 1. Allocate stackspace // 2. iterate over all instructions in this fn // for each, iterate over all operands // if an operand is a vreg // then set it to an appropriate preg and add a load/spill // depending on whether the vreg was a def or a use //************************...
2012 Nov 08
2
[LLVMdev] problem trying to write an LLVM register-allocation pass
Hi Susan, In x86-64 the REX prefix must be used to access an extended register (r8-r15 and their aliases), but cannot be used when accessing the high byte of the ABCD regs (AH, BH, CH, DH). In your test case you have hardcoded %vreg1 to R8B, and %vreg15 to AH, and the test case contains a copy between these registers. The copy simultaneously must have a REX prefix, and cannot have a REX prefix,
2007 Feb 06
0
109 commits - configure.ac libswfdec/js libswfdec/Makefile.am libswfdec/swfdec_bits.c libswfdec/swfdec_bits.h libswfdec/swfdec_buffer.c libswfdec/swfdec_button_movie.c libswfdec/swfdec_codec_screen.c libswfdec/swfdec_color.c libswfdec/swfdec_color.h
...tant_pool_new_from_action (data, len); + if (pool == NULL) + return JS_FALSE; + if (cx->fp->constant_pool) + swfdec_constant_pool_free (cx->fp->constant_pool); + cx->fp->constant_pool = pool; + return JS_TRUE; +} + +static JSBool +swfdec_action_push (JSContext *cx, guint stackspace, const guint8 *data, guint len) +{ + /* FIXME: supply API for this */ + SwfdecBits bits; + + swfdec_bits_init_data (&bits, data, len); + while (swfdec_bits_left (&bits) && stackspace-- > 0) { + guint type = swfdec_bits_get_u8 (&bits); + SWFDEC_LOG ("push type %...