diff options
Diffstat (limited to 'arch/microblaze/kernel/hw_exception_handler.S')
-rw-r--r-- | arch/microblaze/kernel/hw_exception_handler.S | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/arch/microblaze/kernel/hw_exception_handler.S b/arch/microblaze/kernel/hw_exception_handler.S index 2401fa4b7ce..56572e923a8 100644 --- a/arch/microblaze/kernel/hw_exception_handler.S +++ b/arch/microblaze/kernel/hw_exception_handler.S | |||
@@ -490,7 +490,7 @@ ex_lw_tail: | |||
490 | /* Get the destination register number into r5 */ | 490 | /* Get the destination register number into r5 */ |
491 | lbui r5, r0, TOPHYS(ex_reg_op); | 491 | lbui r5, r0, TOPHYS(ex_reg_op); |
492 | /* Form load_word jump table offset (lw_table + (8 * regnum)) */ | 492 | /* Form load_word jump table offset (lw_table + (8 * regnum)) */ |
493 | la r6, r0, TOPHYS(lw_table); | 493 | addik r6, r0, TOPHYS(lw_table); |
494 | addk r5, r5, r5; | 494 | addk r5, r5, r5; |
495 | addk r5, r5, r5; | 495 | addk r5, r5, r5; |
496 | addk r5, r5, r5; | 496 | addk r5, r5, r5; |
@@ -501,7 +501,7 @@ ex_sw: | |||
501 | /* Get the destination register number into r5 */ | 501 | /* Get the destination register number into r5 */ |
502 | lbui r5, r0, TOPHYS(ex_reg_op); | 502 | lbui r5, r0, TOPHYS(ex_reg_op); |
503 | /* Form store_word jump table offset (sw_table + (8 * regnum)) */ | 503 | /* Form store_word jump table offset (sw_table + (8 * regnum)) */ |
504 | la r6, r0, TOPHYS(sw_table); | 504 | addik r6, r0, TOPHYS(sw_table); |
505 | add r5, r5, r5; | 505 | add r5, r5, r5; |
506 | add r5, r5, r5; | 506 | add r5, r5, r5; |
507 | add r5, r5, r5; | 507 | add r5, r5, r5; |
@@ -912,7 +912,7 @@ ex_lw_vm: | |||
912 | beqid r6, ex_lhw_vm; | 912 | beqid r6, ex_lhw_vm; |
913 | load1: lbui r5, r4, 0; /* Exception address in r4 - delay slot */ | 913 | load1: lbui r5, r4, 0; /* Exception address in r4 - delay slot */ |
914 | /* Load a word, byte-by-byte from destination address and save it in tmp space*/ | 914 | /* Load a word, byte-by-byte from destination address and save it in tmp space*/ |
915 | la r6, r0, ex_tmp_data_loc_0; | 915 | addik r6, r0, ex_tmp_data_loc_0; |
916 | sbi r5, r6, 0; | 916 | sbi r5, r6, 0; |
917 | load2: lbui r5, r4, 1; | 917 | load2: lbui r5, r4, 1; |
918 | sbi r5, r6, 1; | 918 | sbi r5, r6, 1; |
@@ -926,7 +926,7 @@ load4: lbui r5, r4, 3; | |||
926 | ex_lhw_vm: | 926 | ex_lhw_vm: |
927 | /* Load a half-word, byte-by-byte from destination address and | 927 | /* Load a half-word, byte-by-byte from destination address and |
928 | * save it in tmp space */ | 928 | * save it in tmp space */ |
929 | la r6, r0, ex_tmp_data_loc_0; | 929 | addik r6, r0, ex_tmp_data_loc_0; |
930 | sbi r5, r6, 0; | 930 | sbi r5, r6, 0; |
931 | load5: lbui r5, r4, 1; | 931 | load5: lbui r5, r4, 1; |
932 | sbi r5, r6, 1; | 932 | sbi r5, r6, 1; |
@@ -942,7 +942,7 @@ ex_sw_vm: | |||
942 | addik r5, r8, sw_table_vm; | 942 | addik r5, r8, sw_table_vm; |
943 | bra r5; | 943 | bra r5; |
944 | ex_sw_tail_vm: | 944 | ex_sw_tail_vm: |
945 | la r5, r0, ex_tmp_data_loc_0; | 945 | addik r5, r0, ex_tmp_data_loc_0; |
946 | beqid r6, ex_shw_vm; | 946 | beqid r6, ex_shw_vm; |
947 | swi r3, r5, 0; /* Get the word - delay slot */ | 947 | swi r3, r5, 0; /* Get the word - delay slot */ |
948 | /* Store the word, byte-by-byte into destination address */ | 948 | /* Store the word, byte-by-byte into destination address */ |
@@ -985,7 +985,7 @@ ex_unaligned_fixup: | |||
985 | addik r7, r0, SIGSEGV | 985 | addik r7, r0, SIGSEGV |
986 | /* call bad_page_fault for finding aligned fixup, fixup address is saved | 986 | /* call bad_page_fault for finding aligned fixup, fixup address is saved |
987 | * in PT_PC which is used as return address from exception */ | 987 | * in PT_PC which is used as return address from exception */ |
988 | la r15, r0, ret_from_exc-8 /* setup return address */ | 988 | addik r15, r0, ret_from_exc-8 /* setup return address */ |
989 | brid bad_page_fault | 989 | brid bad_page_fault |
990 | nop | 990 | nop |
991 | 991 | ||