Skip to content
  • Jack Carter's avatar
    Initial assembler implementation of Mips load address macro · 543fdf85
    Jack Carter authored
    This patch provides initial implementation of load address 
    macro instruction for Mips. We have implemented two kinds 
    of expansions with their variations depending on the size 
    of immediate operand:
    
     1) load address with immediate value directly:
        * la d,j => addiu d,$zero,j   (for -32768 <= j <= 65535)
        * la d,j => lui d,hi16(j)
                    ori d,d,lo16(j)   (for any other 32 bit value of j)
    
     2) load load address with register offset value
        * la d,j(s) => addiu d,s,j     (for -32768 <= j <= 65535)
        * la d,j(s) => lui d,hi16(j)   (for any other 32 bit value of j)
                       ori d,d,lo16(j)
                       addu d,d,s
    
    This patch does not cover the case when the address is loaded 
    from the value of the label or function.
    
    Contributer: Vladimir Medic
    llvm-svn: 165561
    543fdf85
Loading