This is the mail archive of the ecos-patches@sources.redhat.com mailing list for the eCos 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]

Re: Adding user mode support to Arm HAL


This message was sent with wrong subject first time.
I re-send it with right subject.
Sorry for the trouble.

Pierre
-- 
________________________________________________________________________
Pierre HABRAKEN - mailto:Pierre dot Habraken at imag dot fr
Tél: 04 76 82 72 83 - Fax: 04 76 82 72 87
IMAG-LSR BP72 38402 SAINT MARTIN D'HERES Cedex
________________________________________________________________________
--- Begin Message ---
Robin Farine
> [...]
> > As far as I know, there is only one instance of each r0-r7,r15
> > shared by all Arm execution modes. Private ("banked") r8-r12
> > instances are provided in FIQ mode only. Private r13-r14 instances
> > are provided in all non user modes.
> 
> Yes, you are right. However, I noticed another small thing: a few
> lines above you have:
> 
>   stmfd   sp, {r8-r12, sp, lr}^   // get user mode regs
>   sub     sp, sp, #4*7
> 
> The arm-arm says an stm instruction storing user-mode registers
> shouldn't be followed by an instruction that accesses a banked
> register (sp in this case). So you might add a nop between the stmfd
> and the sub for safety.

You are right, I forgot it. It lacks also in handle_IRQ_or_FIQ and after
the ldm in return_from_exception.
I'll fix this, do some tests and then send a new patch (with ChangeLog
entry added).
Thanks for your feedback.

Pierre 
-- 
________________________________________________________________________
Pierre HABRAKEN - mailto:Pierre dot Habraken at imag dot fr
Tél: 04 76 82 72 83 - Fax: 04 76 82 72 87
IMAG-LSR BP72 38402 SAINT MARTIN D'HERES Cedex
________________________________________________________________________


--- End Message ---

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