diff packages/hal/h8300/arch/current/include/hal_arch.h @ 1569:10851723ceff

* src/context.S fix broken ccr from context save. * src/redboot_linux_exec.c fix build error of undefined "CYGDAT_REDBOOT_H8300_LINUX_COMMAND_START" * src/sci.c delete waste code. * src/vectors.S add CYGSEM_HAL_SAVE_STUB_VECTOR. saved parent gdb-stub breakpoint vector. * cdl/hal_h8300.cdl add CYGSEM_HAL_SAVE_STUB_VECTOR move CYGSEM_HAL_H8300_VECTOR_HOOK from target cdl's * src/vector.S add runtime vector setup. add trace exception pc adjust.
author asl
date Tue, 06 Apr 2004 20:32:49 +0000
parents f58b62f3c85d
children
line wrap: on
line diff
--- a/packages/hal/h8300/arch/current/include/hal_arch.h
+++ b/packages/hal/h8300/arch/current/include/hal_arch.h
@@ -92,8 +92,8 @@ externC cyg_uint32 hal_msbit_index(cyg_u
 #define HAL_THREAD_INIT_CONTEXT( _sp_, _thread_, _entry_, _id_ )            \
 {                                                                           \
     register HAL_SavedRegisters *_regs_;                                    \
-    _regs_ = (HAL_SavedRegisters *)(((CYG_ADDRWORD)(_sp_)&~15) -            \
-                                    sizeof(HAL_SavedRegisters)*2);          \
+    _regs_ = (HAL_SavedRegisters *)(((CYG_ADDRWORD)(_sp_)) -                \
+                                    sizeof(HAL_SavedRegisters));            \
     HAL_THREAD_INIT_CONTEXT_EXTRA(_regs_, _id_);                            \
     _regs_->er0   = (CYG_WORD)(_thread_);                                   \
     _regs_->er1   = (_id_)|0xddd1;                                          \
@@ -199,7 +199,7 @@ asm volatile (" .globl  " __HAL_BREAKPOI
     (_regs_)->er4            = _regval_[4];                             \
     (_regs_)->er5            = _regval_[5];                             \
     (_regs_)->er6            = _regval_[6];                             \
-                                                                        \
+    (_regs_)->sp             = _regval_[7];                             \
     (_regs_)->ccr            = _regval_[8];                             \
     (_regs_)->pc             = (_regval_[9] & 0xffffff);                \
                                                                         \