Changes between Version 1 and Version 2 of Ticket #2352


Ignore:
Timestamp:
May 26, 2015, 11:13:46 AM (5 years ago)
Author:
Sebastian Huber
Comment:

Legend:

Unmodified
Added
Removed
Modified
  • Ticket #2352 – Description

    v1 v2  
    3232}}}
    3333
    34 which makes not really sense in combination with
     34which makes not really sense since the compiler generates only 8 byte aligned frames, e.g. (200 % 16 == 8)
     35{{{
     36void f(char i)
     37{
     38        volatile char j[123];
     39        j[122] = i;
     40}
     41}}}
    3542
    3643{{{
    37 /** This defines the size of the ISF area for use in assembly. */
    38 #define CONTEXT_CONTROL_INTERRUPT_FRAME_SIZE \
    39         CPU_MINIMUM_STACK_FRAME_SIZE + 0x50
    40 }}}
    41 
    42 (= not 16 byte aligned) and (_ISR_Handler)
    43 
    44 {{{
    45         /*
    46          *  Save the state of the interrupted task -- especially the global
    47          *  registers -- in the Interrupt Stack Frame.  Note that the ISF
    48          *  includes a regular minimum stack frame which will be used if
    49          *  needed by register window overflow and underflow handlers.
    50          *
    51          *  REGISTERS SAME AS AT _ISR_Handler
    52          */
    53 
    54         sub     %fp, CONTEXT_CONTROL_INTERRUPT_FRAME_SIZE, %sp
    55                                                ! make space for ISF
     44        .file   "test.c"
     45        .section        ".text"
     46        .align 4
     47        .global f
     48        .type   f, #function
     49        .proc   020
     50f:
     51        add     %sp, -200, %sp
     52        stb     %o0, [%sp+194]
     53        jmp     %o7+8
     54         add    %sp, 200, %sp
     55        .size   f, .-f
     56        .ident  "GCC: (GNU) 4.9.3 20150519 (prerelease)"
    5657}}}
    5758