From 2c2abe0d5cc8ebc14931012b864fdb388485b7b6 Mon Sep 17 00:00:00 2001 From: Antonio Linares Date: Fri, 27 Jun 2003 07:12:20 +0000 Subject: [PATCH] IL implementation for HB_P_FRAME --- harbour/source/compiler/gencli.c | 25 ++++++++++++++++++++----- 1 file changed, 20 insertions(+), 5 deletions(-) diff --git a/harbour/source/compiler/gencli.c b/harbour/source/compiler/gencli.c index 04f843b099..25e775481d 100644 --- a/harbour/source/compiler/gencli.c +++ b/harbour/source/compiler/gencli.c @@ -534,11 +534,26 @@ static HB_GENC_FUNC( hb_p_fortest ) static HB_GENC_FUNC( hb_p_frame ) { - fprintf( cargo->yyc, "\tHB_P_FRAME, %i, %i,", - pFunc->pCode[ lPCodePos + 1 ], - pFunc->pCode[ lPCodePos + 2 ] ); - if( cargo->bVerbose ) fprintf( cargo->yyc, "\t/* locals, params */" ); - fprintf( cargo->yyc, "\n" ); + int i; + + fprintf( cargo->yyc, " .locals init (" ); + + for( i = 0; i < pFunc->pCode[ lPCodePos + 1 ]; i++ ) + { + if( i > 0 ) + fprintf( cargo->yyc, "," ); + + fprintf( cargo->yyc, " object V_%i", i ); + } + + fprintf( cargo->yyc, " )\n" ); + + // fprintf( cargo->yyc, "\tHB_P_FRAME, %i, %i,", + // pFunc->pCode[ lPCodePos + 1 ], + // pFunc->pCode[ lPCodePos + 2 ] ); + // if( cargo->bVerbose ) fprintf( cargo->yyc, "\t/* locals, params */" ); + // fprintf( cargo->yyc, "\n" ); + return 3; }