From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 14719 invoked by alias); 30 Nov 2007 04:24:24 -0000 Received: (qmail 14690 invoked by uid 9707); 30 Nov 2007 04:24:20 -0000 Date: Fri, 30 Nov 2007 04:24:00 -0000 Message-ID: <20071130042420.14675.qmail@sourceware.org> From: jflavio@sourceware.org To: frysk-cvs@sourceware.org Subject: [SCM] master: Merge branch 'master' of ssh://sources.redhat.com/git/frysk X-Git-Refname: refs/heads/master X-Git-Reftype: branch X-Git-Oldrev: bc17c29140bb51887ead83de19154ff381a04dac X-Git-Newrev: c59164dcf19440dca54e74fb4ab6297c8a58e617 Mailing-List: contact frysk-cvs-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Post: List-Help: , Sender: frysk-cvs-owner@sourceware.org Reply-To: frysk@sourceware.org X-SW-Source: 2007-q4/txt/msg00500.txt.bz2 The branch, master has been updated via c59164dcf19440dca54e74fb4ab6297c8a58e617 (commit) via 23d640f3b3dd5433285ae2446f5770a57e5d4783 (commit) from bc17c29140bb51887ead83de19154ff381a04dac (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit c59164dcf19440dca54e74fb4ab6297c8a58e617 Merge: 23d640f3b3dd5433285ae2446f5770a57e5d4783 bc17c29140bb51887ead83de19154ff381a04dac Author: Jose Flavio Aguilar Paulino Date: Fri Nov 30 02:23:25 2007 -0200 Merge branch 'master' of ssh://sources.redhat.com/git/frysk commit 23d640f3b3dd5433285ae2446f5770a57e5d4783 Author: Jose Flavio Aguilar Paulino Date: Fri Nov 30 01:44:14 2007 -0200 Fixed frameless function and load immediate for PowerPC32 ----------------------------------------------------------------------- Summary of changes: frysk-imports/include/ChangeLog | 5 ++++ frysk-imports/include/frysk-asm.h | 45 ++++++++++++++++++++++++++++++------ 2 files changed, 42 insertions(+), 8 deletions(-) First 500 lines of diff: diff --git a/frysk-imports/include/ChangeLog b/frysk-imports/include/ChangeLog index 74121b4..284cd00 100644 --- a/frysk-imports/include/ChangeLog +++ b/frysk-imports/include/ChangeLog @@ -1,3 +1,8 @@ +2007-11-30 Jose Flavio Aguilar Paulino + + * frysk-asm.h: Fixed load immediate for PowerPC32 and corrected + frameless function for PPC32. + 2007-11-29 Jose Flavio Aguilar Paulino * frysk-asm.h: Fixed loading immediate 64 bit word for Power64, diff --git a/frysk-imports/include/frysk-asm.h b/frysk-imports/include/frysk-asm.h index 06f930b..3953987 100644 --- a/frysk-imports/include/frysk-asm.h +++ b/frysk-imports/include/frysk-asm.h @@ -249,7 +249,7 @@ #elif defined __powerpc64__ // PowerPC instructions have a fixed length // So in Power64 -// 64-bit immediate must be loaded in 16-bit pieces +// 64-bit immediate must be loaded in four 16-bit pieces # define LOAD_IMMED_WORD(DEST_REG,CONST) \ lis DEST_REG, CONST@highest ; \ ori DEST_REG, DEST_REG, CONST@higher ; \ @@ -257,7 +257,11 @@ oris DEST_REG, DEST_REG, CONST@h ; \ ori DEST_REG, DEST_REG, CONST@l ; #elif defined __powerpc__ -# define LOAD_IMMED_WORD(DEST_REG,CONST) li DEST_REG, CONST +// In Power32 +// 32-bit immediate must be loaded in two 16-bit pieces +# define LOAD_IMMED_WORD(DEST_REG,CONST) \ + lis DEST_REG, CONST@ha ; \ + addi DEST_REG, DEST_REG, CONST@l #else # warning "No load immediate instruction sequence defined" #endif @@ -526,6 +530,17 @@ .cfi_offset lr, 16 ; \ stdu 1, -128(1) ; \ .cfi_adjust_cfa_offset 128 ; +#elif defined __powerpc__ +# define FUNCTION_PROLOGUE(FUNC,SLOTS) \ + stwu 1, -48(1) ; \ + .cfi_adjust_cfa_offset 48 ; \ + mflr 0 ; \ + .cfi_register lr, 0 ; \ + stw 30, 8(1) ; \ + .cfi_offset 30, 8 ; \ + stw 31, 12(1) ; \ + .cfi_offset 31, 12 ; +#elif #else # warning "No function-prologue compound instruction defined" #endif @@ -542,10 +557,20 @@ .cfi_adjust_cfa_offset -8 #elif defined __powerpc64__ # define FUNCTION_EPILOGUE(FUNC,SLOTS) \ - ld 1, 0(1) ; \ - ld 0, 16(1) ; \ - mtlr 0 ; \ - ld 31, -8(1) ; + ld 1, 0(1) ; \ + ld 0, 16(1) ; \ + mtlr 0 ; \ + .cfi_same_value lr ; \ + ld 31, -8(1) +#elif defined __powerpc__ +# define FUNCTION_EPILOGUE(FUNC,SLOTS) \ + lwz 11,0(1) ; \ + lwz 0,4(11) ; \ + mtlr 0 ; \ + .cfi_same_value lr ; \ + lwz 31,-4(11) ; \ + mr 1,11 ; \ + blr #else # warning "No function-epilogue instruction sequence defined" #endif @@ -720,7 +745,8 @@ #define FRAMELESS_ADJ_RETURN(REG) \ .cfi_register rax, REG #elif defined __powerpc__ -#define FRAMELESS_ADJ_RETURN(REG) +#define FRAMELESS_ADJ_RETURN(REG) \ + .cfi_register 0, REG #else # warning "No frameless function return adjustment defined" #endif @@ -733,7 +759,10 @@ .cfi_endproc #elif defined __powerpc64__ #define FRAMELESS_FUNCTION_END(FUNC) \ - .cfi_endproc; + .cfi_endproc +#elif defined __powerpc__ +#define FRAMELESS_FUNCTION_END(FUNC) \ + .cfi_endproc #else # warning "No frameless function ending instructions defined" #endif hooks/post-receive -- frysk system monitor/debugger