microblaze: Do not use "la" pseudo instruction - use addik instead
authorMichal Simek <monstr@monstr.eu>
Tue, 1 Feb 2011 08:00:57 +0000 (09:00 +0100)
committerMichal Simek <monstr@monstr.eu>
Wed, 9 Mar 2011 07:09:54 +0000 (08:09 +0100)
"la" pseudo instruction is only translation to "addik".
Use directly "addik" which is described in the MB reference guide.

Signed-off-by: Michal Simek <monstr@monstr.eu>
arch/microblaze/kernel/entry-nommu.S
arch/microblaze/kernel/entry.S
arch/microblaze/kernel/head.S
arch/microblaze/kernel/hw_exception_handler.S

index ca84368570b62d18827cbbfe3e51777fe7f423b5..34b526f59b43782c68e4a66df2f163b2471b3c63 100644 (file)
@@ -115,7 +115,7 @@ ENTRY(_interrupt)
        /* restore r31 */
        lwi     r31, r0, PER_CPU(CURRENT_SAVE)
        /* prepare the link register, the argument and jump */
-       la      r15, r0, ret_from_intr - 8
+       addik   r15, r0, ret_from_intr - 8
        addk    r6, r0, r15
        braid   do_IRQ
        add     r5, r0, r1
@@ -283,7 +283,7 @@ ENTRY(_user_exception)
        add     r12, r12, r12                   /* convert num -> ptr */
        add     r12, r12, r12
        lwi     r12, r12, sys_call_table        /* Get function pointer */
-       la      r15, r0, ret_to_user-8          /* set return address */
+       addik   r15, r0, ret_to_user-8          /* set return address */
        bra     r12                             /* Make the system call. */
        bri     0                               /* won't reach here */
 1:
index ff949e362968db6881481abab10d48217020f6df..e3c8d69e248bdfde220ccd588cbdb859bf76c2c3 100644 (file)
@@ -821,7 +821,7 @@ C_ENTRY(_debug_exception):
        tovirt(r1,r1)
 #ifdef CONFIG_KGDB
        addi    r5, r1, 0 /* pass pt_reg address as the first arg */
-       la      r15, r0, dbtrap_call; /* return address */
+       addik   r15, r0, dbtrap_call; /* return address */
        rtbd    r0, microblaze_kgdb_break
        nop;
 #endif
index d8dc085a945600f11f00a24e4f5faaae86b49468..77320b8fc16a8c2229192343b3b527613b3a3650 100644 (file)
@@ -224,26 +224,26 @@ start_here:
 #endif /* CONFIG_MMU */
 
        /* Initialize small data anchors */
-       la      r13, r0, _KERNEL_SDA_BASE_
-       la      r2, r0, _KERNEL_SDA2_BASE_
+       addik   r13, r0, _KERNEL_SDA_BASE_
+       addik   r2, r0, _KERNEL_SDA2_BASE_
 
        /* Initialize stack pointer */
-       la      r1, r0, init_thread_union + THREAD_SIZE - 4
+       addik   r1, r0, init_thread_union + THREAD_SIZE - 4
 
        /* Initialize r31 with current task address */
-       la      r31, r0, init_task
+       addik   r31, r0, init_task
 
        /*
         * Call platform dependent initialize function.
         * Please see $(ARCH)/mach-$(SUBARCH)/setup.c for
         * the function.
         */
-       la      r9, r0, machine_early_init
+       addik   r9, r0, machine_early_init
        brald   r15, r9
        nop
 
 #ifndef CONFIG_MMU
-       la      r15, r0, machine_halt
+       addik   r15, r0, machine_halt
        braid   start_kernel
        nop
 #else
index 2401fa4b7ce1440cec59b5809f7fa77327e07d44..56572e923a83b118d657d24a1b53a143715b76e8 100644 (file)
@@ -490,7 +490,7 @@ ex_lw_tail:
        /* Get the destination register number into r5 */
        lbui    r5, r0, TOPHYS(ex_reg_op);
        /* Form load_word jump table offset (lw_table + (8 * regnum)) */
-       la      r6, r0, TOPHYS(lw_table);
+       addik   r6, r0, TOPHYS(lw_table);
        addk    r5, r5, r5;
        addk    r5, r5, r5;
        addk    r5, r5, r5;
@@ -501,7 +501,7 @@ ex_sw:
        /* Get the destination register number into r5 */
        lbui    r5, r0, TOPHYS(ex_reg_op);
        /* Form store_word jump table offset (sw_table + (8 * regnum)) */
-       la      r6, r0, TOPHYS(sw_table);
+       addik   r6, r0, TOPHYS(sw_table);
        add     r5, r5, r5;
        add     r5, r5, r5;
        add     r5, r5, r5;
@@ -912,7 +912,7 @@ ex_lw_vm:
        beqid   r6, ex_lhw_vm;
 load1: lbui    r5, r4, 0;      /* Exception address in r4 - delay slot */
 /* Load a word, byte-by-byte from destination address and save it in tmp space*/
-       la      r6, r0, ex_tmp_data_loc_0;
+       addik   r6, r0, ex_tmp_data_loc_0;
        sbi     r5, r6, 0;
 load2: lbui    r5, r4, 1;
        sbi     r5, r6, 1;
@@ -926,7 +926,7 @@ load4:      lbui    r5, r4, 3;
 ex_lhw_vm:
        /* Load a half-word, byte-by-byte from destination address and
         * save it in tmp space */
-       la      r6, r0, ex_tmp_data_loc_0;
+       addik   r6, r0, ex_tmp_data_loc_0;
        sbi     r5, r6, 0;
 load5: lbui    r5, r4, 1;
        sbi     r5, r6, 1;
@@ -942,7 +942,7 @@ ex_sw_vm:
        addik   r5, r8, sw_table_vm;
        bra     r5;
 ex_sw_tail_vm:
-       la      r5, r0, ex_tmp_data_loc_0;
+       addik   r5, r0, ex_tmp_data_loc_0;
        beqid   r6, ex_shw_vm;
        swi     r3, r5, 0;      /* Get the word - delay slot */
        /* Store the word, byte-by-byte into destination address */
@@ -985,7 +985,7 @@ ex_unaligned_fixup:
        addik   r7, r0, SIGSEGV
        /* call bad_page_fault for finding aligned fixup, fixup address is saved
         * in PT_PC which is used as return address from exception */
-       la      r15, r0, ret_from_exc-8 /* setup return address */
+       addik   r15, r0, ret_from_exc-8 /* setup return address */
        brid    bad_page_fault
        nop