This is the mail archive of the
frysk-cvs@sources.redhat.com
mailing list for the frysk project.
[SCM] master: Merge branch 'master' of ssh://sources.redhat.com/git/frysk
- From: jflavio at sourceware dot org
- To: frysk-cvs at sourceware dot org
- Date: 30 Nov 2007 04:24:20 -0000
- Subject: [SCM] master: Merge branch 'master' of ssh://sources.redhat.com/git/frysk
- Reply-to: frysk at sourceware dot org
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