On Tue, Sep 22, 2015 at 4:44 AM, David Chisnall
<david.chisn...@cl.cam.ac.uk> wrote:
> On 22 Sep 2015, at 12:39, H.J. Lu via cfe-dev <cfe-...@lists.llvm.org> wrote:
>>
>> The center piece of my proposal is not to change how parameters
>> are passed in compiler.  As for user experience, the feedbacks on
>> my proposal from our users are very positive.
>
> Implementing the intrinsics for getting the current interrupt requires a lot 
> of support code for it to actually be useful.  For it to be useful, you are 
> requiring all of the C code to be run with interrupts disabled (and even that 
> doesn’t work if you get a NMI in the middle).  Most implementations use a 
> small amount of assembly to capture the interrupt cause and the register 
> state on entry to the handler, then reenable interrupts while the C code 
> runs.  This means that any interrupts (e.g. page faults, illegal instruction 
> traps, whatever) that happen while the C code is running do not mask the 
> values.  Accessing these values from *existing* C code is simply a matter of 
> loading a field from a structure.

The above applies to with and without intrinsics.

> I’m really unconvinced by something that something with such a narrow use 
> case (and one that encourages writing bad code) belongs in the compiler.
>
> David



-- 
H.J.

Reply via email to