OpenCores
URL https://opencores.org/ocsvn/or1k_soc_on_altera_embedded_dev_kit/or1k_soc_on_altera_embedded_dev_kit/trunk

Subversion Repositories or1k_soc_on_altera_embedded_dev_kit

[/] [or1k_soc_on_altera_embedded_dev_kit/] [trunk/] [linux-2.6/] [linux-2.6.24/] [arch/] [or32/] [kernel/] [su.S] - Rev 7

Compare with Previous | Blame | View Log

        .global _su_asm
_su_asm:
        l.addi   r1,r1,-8
        l.sw     0x0(r1),r9
        l.sw     0x4(r1),r14

        /* r14 = 0x8890 */
        l.ori    r11,r0,0x0
        l.ori    r14,r0,0x8890
        l.nop
        l.nop
        
        l.sfgtui r14,0x8887
        l.bf     1f
        l.nop
        l.ori    r11,r11,0x1    /* this should pass */

1:
        l.sfgtsi r14,0x8887     /* IMMEDIATE is NEGATIVE */
        l.bf     1f
        l.nop
        l.ori    r11,r11,0x2    /* this should pass */

1:      
        l.sfgtui r14,0x6665
        l.bf     1f
        l.nop
        l.ori    r11,r11,0x4    /* this should pass */

1:
        l.sfgtsi r14,0x6665
        l.bf     1f
        l.nop
        l.ori    r11,r11,0x8    /* this should pass */


1:      
        /* r14 = 0x8008 */      
        l.ori    r14,r0,0x8008  

        l.sfgtui r14,0x8887
        l.bf     1f
        l.nop
        l.ori    r11,r11,0x10   /* this should fail r14 |= 0x10 */      
        
1:              
        l.sfgtsi r14,0x8887     /* IMMEDIATE is NEGATIVE */
        l.bf     1f
        l.nop
        l.ori    r11,r11,0x20   /* this should pass  */

1:      

        /* r14 = 1 */   
        l.ori    r14,r0,1       

        l.sfgtsi r14,0x8887     /* IMMEDIATE is NEGATIVE */
        l.bf     1f
        l.nop
        l.ori    r11,r11,0x40   /* this should pass */
        

1:
        l.sfgtui r14,0x8887
        l.bf     1f
        l.nop
        l.ori    r11,r11,0x80   /* this should fail r14 |= 0x80 */

1:      
        l.sfgtsi r14,0x6665
        l.bf     1f
        l.nop
        l.ori    r11,r11,0x100  /* this should fail r14 |= 0x100 */
        

1:
        l.sfgtui r14,0x6665
        l.bf     1f
        l.nop
        l.ori    r11,r11,0x200  /* this should pass r14 |= 0x200 */

1:
        /* r11 should be 0x390 */
        
        l.lwz    r14,0x4(r1)
        l.lwz    r9,0x0(r1)
        l.jr     r9
        l.addi   r1,r1,8

Compare with Previous | Blame | View Log

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.