<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>change log for rtems (2011-08-09)</title>
</head>
<body text='#000000' bgcolor='#ffffff'>
<a name='cs1'></a>
<table border='0' cellspacing='0' cellpadding='5' width='100%' bgcolor='#eeeeee'>
<tr><td colspan='3' bgcolor='#dddddd'>
<font color='#bb2222'><strong>sh</strong></font>
</td></tr>
<tr><td colspan='3' bgcolor='#dddddd'><pre>2011-08-09 Sebastian Huber <sebastian.huber@embedded-brains.de>
* cpu_asm.S, rtems/score/cpu.h: There is no need to save the global
pointer (gp) in the thread register context since it is a system wide
constant and set-up with the C runtime environment.
</pre></td></tr>
<tr><td width='1%'><a href="http://www.rtems.com/cgi-bin/viewcvs.cgi//rtems/cpukit/score/cpu/nios2/ChangeLog.diff?r1=text&tr1=1.29&r2=text&tr2=1.30&diff_format=h">M</a></td><td width='1%'>1.30</td><td width='100%'>cpukit/score/cpu/nios2/ChangeLog</td></tr>
<tr><td width='1%'><a href="http://www.rtems.com/cgi-bin/viewcvs.cgi//rtems/cpukit/score/cpu/nios2/cpu_asm.S.diff?r1=text&tr1=1.6&r2=text&tr2=1.7&diff_format=h">M</a></td><td width='1%'>1.7</td><td width='100%'>cpukit/score/cpu/nios2/cpu_asm.S</td></tr>
<tr><td width='1%'><a href="http://www.rtems.com/cgi-bin/viewcvs.cgi//rtems/cpukit/score/cpu/nios2/rtems/score/cpu.h.diff?r1=text&tr1=1.17&r2=text&tr2=1.18&diff_format=h">M</a></td><td width='1%'>1.18</td><td width='100%'>cpukit/score/cpu/nios2/rtems/score/cpu.h</td></tr>
</table>
<pre>
<font color='#006600'>diff -u rtems/cpukit/score/cpu/nios2/ChangeLog:1.29 rtems/cpukit/score/cpu/nios2/ChangeLog:1.30
--- rtems/cpukit/score/cpu/nios2/ChangeLog:1.29 Sun Jul 24 18:43:07 2011
+++ rtems/cpukit/score/cpu/nios2/ChangeLog Tue Aug 9 05:28:09 2011
</font><font color='#997700'>@@ -1,3 +1,9 @@
</font><font color='#000088'>+2011-08-09 Sebastian Huber <sebastian.huber@embedded-brains.de>
+
+ * cpu_asm.S, rtems/score/cpu.h: There is no need to save the global
+ pointer (gp) in the thread register context since it is a system wide
+ constant and set-up with the C runtime environment.
+
</font> 2011-07-24 Joel Sherrill <joel.sherrill@oarcorp.com>
* cpu.c: Remove /*PAGE markers which were interpreted by a long dead
<font color='#006600'>diff -u rtems/cpukit/score/cpu/nios2/cpu_asm.S:1.6 rtems/cpukit/score/cpu/nios2/cpu_asm.S:1.7
--- rtems/cpukit/score/cpu/nios2/cpu_asm.S:1.6 Sat Mar 27 10:02:21 2010
+++ rtems/cpukit/score/cpu/nios2/cpu_asm.S Tue Aug 9 05:28:09 2011
</font><font color='#997700'>@@ -46,12 +46,11 @@
</font> stw r21, 20(r4)
stw r22, 24(r4)
stw r23, 28(r4)
<font color='#880000'>- stw gp, 32(r4)
- stw fp, 36(r4)
- stw sp, 40(r4)
- stw ra, 44(r4)
</font><font color='#000088'>+ stw fp, 32(r4)
+ stw sp, 36(r4)
+ stw ra, 40(r4)
</font> /* r6 saved status */
<font color='#880000'>- stw r6, 48(r4)
</font><font color='#000088'>+ stw r6, 44(r4)
</font>
_CPU_Context_switch_restore:
<font color='#997700'>@@ -63,15 +62,14 @@
</font> ldw r21, 20(r5)
ldw r22, 24(r5)
ldw r23, 28(r5)
<font color='#880000'>- ldw gp, 32(r5)
- ldw fp, 36(r5)
- ldw sp, 40(r5)
</font><font color='#000088'>+ ldw fp, 32(r5)
+ ldw sp, 36(r5)
</font>
/* Disable interrupts */
wrctl status, r0
<font color='#880000'>- ldw ea, 44(r5)
- ldw at, 48(r5)
</font><font color='#000088'>+ ldw ea, 40(r5)
+ ldw at, 44(r5)
</font> /* FIXME: Always have interrupts enabled when we return from Context_switch */
ori at, at, 1
wrctl estatus, at
<font color='#006600'>diff -u rtems/cpukit/score/cpu/nios2/rtems/score/cpu.h:1.17 rtems/cpukit/score/cpu/nios2/rtems/score/cpu.h:1.18
--- rtems/cpukit/score/cpu/nios2/rtems/score/cpu.h:1.17 Thu Oct 21 17:14:02 2010
+++ rtems/cpukit/score/cpu/nios2/rtems/score/cpu.h Tue Aug 9 05:28:09 2011
</font><font color='#997700'>@@ -453,27 +453,27 @@
</font> */
/**
<font color='#880000'>- * @ingroup CPUContext Management
- * This defines the minimal set of integer and processor state registers
- * that must be saved during a voluntary context switch from one thread
- * to another.
</font><font color='#000088'>+ * @brief Thread register context.
+ *
+ * The thread register context covers the non-volatile registers, the thread
+ * stack pointer, the return address, and the processor status.
+ *
+ * There is no need to save the global pointer (gp) since it is a system wide
+ * constant and set-up with the C runtime environment.
</font> */
typedef struct {
<font color='#880000'>- uint32_t r16;
- uint32_t r17;
- uint32_t r18;
- uint32_t r19;
- uint32_t r20;
- uint32_t r21;
- uint32_t r22;
- uint32_t r23;
- uint32_t gp;
- uint32_t fp;
- uint32_t sp;
- uint32_t ra;
- uint32_t status;
- /* ienable? */
- /* ipending? */
</font><font color='#000088'>+ uint32_t r16;
+ uint32_t r17;
+ uint32_t r18;
+ uint32_t r19;
+ uint32_t r20;
+ uint32_t r21;
+ uint32_t r22;
+ uint32_t r23;
+ uint32_t fp;
+ uint32_t sp;
+ uint32_t ra;
+ uint32_t status;
</font> } Context_Control;
#define _CPU_Context_Get_SP( _context ) \
<font color='#997700'>@@ -866,9 +866,7 @@
</font> #define _CPU_Context_Initialize( _the_context, _stack_base, _size, \
_isr, _entry_point, _is_fp ) \
do { \
<font color='#880000'>- extern char _gp[]; \
</font> uint32_t _stack = (uint32_t)(_stack_base) + (_size) - 4; \
<font color='#880000'>- (_the_context)->gp = (void *)_gp; \
</font> (_the_context)->fp = (void *)_stack; \
(_the_context)->sp = (void *)_stack; \
(_the_context)->ra = (void *)(_entry_point); \
</pre>
<p> </p>
<p>--<br />
<small>Generated by <a href="http://www.codewiz.org/projects/index.html#loginfo">Deluxe Loginfo</a> 2.122 by Bernardo Innocenti <bernie@develer.com></small></p>
</body>
</html>