This is the mail archive of the frysk-cvs@sources.redhat.com mailing list for the frysk project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[SCM] master: Merge branch 'master' of ssh://sources.redhat.com/git/frysk


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 <joseflavio@gmail.com>
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 <joseflavio@gmail.com>
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 <joseflavio@gmail.com>
+
+	* frysk-asm.h: Fixed load immediate for PowerPC32 and corrected
+	frameless function for PPC32.
+
 2007-11-29  Jose Flavio Aguilar Paulino <joseflavio@gmail.com>
 
 	* 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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]