Mips specific inline asm operand modifier 'D'
authorJack Carter <jack.carter@imgtec.com>
Tue, 9 Apr 2013 23:19:50 +0000 (23:19 +0000)
committerJack Carter <jack.carter@imgtec.com>
Tue, 9 Apr 2013 23:19:50 +0000 (23:19 +0000)
commita9a5c537ad0bf5ab68ed79c163500a4fcb3fc3ff
tree57c2a11063ebbd34b67e5e51dde9e11aca390a95
parent7eb0d8148e1210d9e31ab471477de47b53bab117
Mips specific inline asm operand modifier 'D'

Modifier 'D' is to use the second word of a double integer.

We had previously implemented the pure register varient of
the modifier and this patch implements the memory reference.

#include "stdio.h"

int b[8] = {0,1,2,3,4,5,6,7};
void main()
{
    int i;

    // The first word. Notice, no 'D'
    {asm (
    "lw    %0,%1;"
    : "=r" (i)
    : "m" (*(b+4))
    );}

    printf("%d\n",i);

    // The second word
    {asm (
    "lw    %0,%D1;"
    : "=r" (i)
    : "m" (*(b+4))
    );}

    printf("%d\n",i);
}

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@179135 91177308-0d34-0410-b5e6-96231b3b80d8
lib/Target/Mips/MipsAsmPrinter.cpp
test/CodeGen/Mips/inlineasmmemop.ll