Changeset 70259a55 in mainline for kernel/arch/ia64/src/ivt.S


Ignore:
Timestamp:
2018-09-11T21:01:08Z (7 years ago)
Author:
Jakub Jermar <jakub@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
e38ff16
Parents:
d2c91ab
Message:

ia64: Use appropriate imm21 operand with BREAK

This commit changes the imm21 used with the BREAK instruction to conform
to the IA-64 Software Conventions and Runtime Architecture Guide. This
is necessary to be able to distinguish syscalls from compiler-generated
calls to architected software interrupts (e.g. integer divide by zero).

In order to be able to test the used immediate in break_instruction(),
we extend istate_t to hold the CR.IIM register.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • kernel/arch/ia64/src/ivt.S

    rd2c91ab r70259a55  
    186186        st8 [r31] = r29, -STACK_ITEM_SIZE ;;    /* save predicate registers */
    187187
     188        mov r29 = cr.iim ;;
     189        st8 [r31] = r29, -STACK_ITEM_SIZE ;;    /* save cr.iim */
     190
    188191        st8 [r31] = r24, -STACK_ITEM_SIZE ;;    /* save cr.iip */
    189192        st8 [r31] = r25, -STACK_ITEM_SIZE ;;    /* save cr.ipsr */
     
    274277        ld8 r25 = [r31], +STACK_ITEM_SIZE ;;    /* load cr.ipsr */
    275278        ld8 r24 = [r31], +STACK_ITEM_SIZE ;;    /* load cr.iip */
     279        ld8 r29 = [r31], +STACK_ITEM_SIZE ;;    /* load cr.iim */
    276280
    277281        mov cr.iip = r24;;
     
    279283        mov cr.isr = r27
    280284        mov cr.ifa = r28
     285        mov cr.iim = r29
    281286
    282287        /* Set up FPU as in exception. */
Note: See TracChangeset for help on using the changeset viewer.