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

Subversion Repositories openrisc

[/] [openrisc/] [trunk/] [gnu-stable/] [binutils-2.20.1/] [gas/] [testsuite/] [gas/] [arm/] [vfp-neon-syntax-inc.s] - Diff between revs 816 and 818

Only display areas with differences | Details | Blame | View Log

Rev 816 Rev 818
@ VFP with Neon-style syntax
@ VFP with Neon-style syntax
        .syntax unified
        .syntax unified
 
 
        .include "itblock.s"
        .include "itblock.s"
 
 
func:
func:
        .macro testvmov cond="" f32=".f32" f64=".f64"
        .macro testvmov cond="" f32=".f32" f64=".f64"
        itblock 4 \cond
        itblock 4 \cond
        vmov\cond\f32 s0,s1
        vmov\cond\f32 s0,s1
        vmov\cond\f64 d0,d1
        vmov\cond\f64 d0,d1
        vmov\cond\f32 s0,#0.25
        vmov\cond\f32 s0,#0.25
        vmov\cond\f64 d0,#1.0
        vmov\cond\f64 d0,#1.0
        itblock 4 \cond
        itblock 4 \cond
        vmov\cond r0,s1
        vmov\cond r0,s1
        vmov\cond s0,r1
        vmov\cond s0,r1
        vmov\cond r0,r1,s2,s3
        vmov\cond r0,r1,s2,s3
        vmov\cond s0,s1,r2,r4
        vmov\cond s0,s1,r2,r4
        .endm
        .endm
 
 
        @ Test VFP vmov variants. These can all be conditional.
        @ Test VFP vmov variants. These can all be conditional.
        testvmov
        testvmov
        testvmov eq
        testvmov eq
 
 
        .macro monadic op cond="" f32=".f32" f64=".f64"
        .macro monadic op cond="" f32=".f32" f64=".f64"
        itblock 2 \cond
        itblock 2 \cond
        \op\cond\f32 s0,s1
        \op\cond\f32 s0,s1
        \op\cond\f64 d0,d1
        \op\cond\f64 d0,d1
        .endm
        .endm
 
 
        .macro monadic_c op
        .macro monadic_c op
        monadic \op
        monadic \op
        monadic \op eq
        monadic \op eq
        .endm
        .endm
 
 
        .macro dyadic op cond="" f32=".f32" f64=".f64"
        .macro dyadic op cond="" f32=".f32" f64=".f64"
        itblock 2 \cond
        itblock 2 \cond
        \op\cond\f32 s0,s1,s2
        \op\cond\f32 s0,s1,s2
        \op\cond\f64 d0,d1,d2
        \op\cond\f64 d0,d1,d2
        .endm
        .endm
 
 
        .macro dyadic_c op
        .macro dyadic_c op
        dyadic \op
        dyadic \op
        dyadic \op eq
        dyadic \op eq
        .endm
        .endm
 
 
        .macro dyadicz op cond="" f32=".f32" f64=".f64"
        .macro dyadicz op cond="" f32=".f32" f64=".f64"
        itblock 2 \cond
        itblock 2 \cond
        \op\cond\f32 s0,#0
        \op\cond\f32 s0,#0
        \op\cond\f64 d0,#0
        \op\cond\f64 d0,#0
        .endm
        .endm
 
 
        .macro dyadicz_c op
        .macro dyadicz_c op
        dyadicz \op
        dyadicz \op
        dyadicz \op eq
        dyadicz \op eq
        .endm
        .endm
 
 
        monadic_c vsqrt
        monadic_c vsqrt
        monadic_c vabs
        monadic_c vabs
        monadic_c vneg
        monadic_c vneg
        monadic_c vcmp
        monadic_c vcmp
        monadic_c vcmpe
        monadic_c vcmpe
 
 
        dyadic_c vnmul
        dyadic_c vnmul
        dyadic_c vnmla
        dyadic_c vnmla
        dyadic_c vnmls
        dyadic_c vnmls
 
 
        dyadic_c vmul
        dyadic_c vmul
        dyadic_c vmla
        dyadic_c vmla
        dyadic_c vmls
        dyadic_c vmls
 
 
        dyadic_c vadd
        dyadic_c vadd
        dyadic_c vsub
        dyadic_c vsub
 
 
        dyadic_c vdiv
        dyadic_c vdiv
 
 
        dyadicz_c vcmp
        dyadicz_c vcmp
        dyadicz_c vcmpe
        dyadicz_c vcmpe
 
 
        .macro cvtz cond="" s32=".s32" u32=".u32" f32=".f32" f64=".f64"
        .macro cvtz cond="" s32=".s32" u32=".u32" f32=".f32" f64=".f64"
        itblock 4 \cond
        itblock 4 \cond
        vcvtz\cond\s32\f32 s0,s1
        vcvtz\cond\s32\f32 s0,s1
        vcvtz\cond\u32\f32 s0,s1
        vcvtz\cond\u32\f32 s0,s1
        vcvtz\cond\s32\f64 s0,d1
        vcvtz\cond\s32\f64 s0,d1
        vcvtz\cond\u32\f64 s0,d1
        vcvtz\cond\u32\f64 s0,d1
        .endm
        .endm
 
 
        cvtz
        cvtz
        cvtz eq
        cvtz eq
 
 
        .macro cvt cond="" s32=".s32" u32=".u32" f32=".f32" f64=".f64"
        .macro cvt cond="" s32=".s32" u32=".u32" f32=".f32" f64=".f64"
        itblock 4 \cond
        itblock 4 \cond
        vcvt\cond\s32\f32 s0,s1
        vcvt\cond\s32\f32 s0,s1
        vcvt\cond\u32\f32 s0,s1
        vcvt\cond\u32\f32 s0,s1
        vcvt\cond\f32\s32 s0,s1
        vcvt\cond\f32\s32 s0,s1
        vcvt\cond\f32\u32 s0,s1
        vcvt\cond\f32\u32 s0,s1
        itblock 4 \cond
        itblock 4 \cond
        vcvt\cond\f32\f64 s0,d1
        vcvt\cond\f32\f64 s0,d1
        vcvt\cond\f64\f32 d0,s1
        vcvt\cond\f64\f32 d0,s1
        vcvt\cond\s32\f64 s0,d1
        vcvt\cond\s32\f64 s0,d1
        vcvt\cond\u32\f64 s0,d1
        vcvt\cond\u32\f64 s0,d1
        itblock 2 \cond
        itblock 2 \cond
        vcvt\cond\f64\s32 d0,s1
        vcvt\cond\f64\s32 d0,s1
        vcvt\cond\f64\u32 d0,s1
        vcvt\cond\f64\u32 d0,s1
        .endm
        .endm
 
 
        cvt
        cvt
        cvt eq
        cvt eq
 
 
        .macro cvti cond="" s32=".s32" u32=".u32" f32=".f32" f64=".f64" s16=".s16" u16=".u16"
        .macro cvti cond="" s32=".s32" u32=".u32" f32=".f32" f64=".f64" s16=".s16" u16=".u16"
        itblock 4 \cond
        itblock 4 \cond
        vcvt\cond\s32\f32 s0,s0,#1
        vcvt\cond\s32\f32 s0,s0,#1
        vcvt\cond\u32\f32 s0,s0,#1
        vcvt\cond\u32\f32 s0,s0,#1
        vcvt\cond\f32\s32 s0,s0,#1
        vcvt\cond\f32\s32 s0,s0,#1
        vcvt\cond\f32\u32 s0,s0,#1
        vcvt\cond\f32\u32 s0,s0,#1
        itblock 4 \cond
        itblock 4 \cond
        vcvt\cond\s32\f64 d0,d0,#1
        vcvt\cond\s32\f64 d0,d0,#1
        vcvt\cond\u32\f64 d0,d0,#1
        vcvt\cond\u32\f64 d0,d0,#1
        vcvt\cond\f64\s32 d0,d0,#1
        vcvt\cond\f64\s32 d0,d0,#1
        vcvt\cond\f64\u32 d0,d0,#1
        vcvt\cond\f64\u32 d0,d0,#1
        itblock 4 \cond
        itblock 4 \cond
        vcvt\cond\f32\s16 s0,s0,#1
        vcvt\cond\f32\s16 s0,s0,#1
        vcvt\cond\f32\u16 s0,s0,#1
        vcvt\cond\f32\u16 s0,s0,#1
        vcvt\cond\f64\s16 d0,d0,#1
        vcvt\cond\f64\s16 d0,d0,#1
        vcvt\cond\f64\u16 d0,d0,#1
        vcvt\cond\f64\u16 d0,d0,#1
        itblock 4 \cond
        itblock 4 \cond
        vcvt\cond\s16\f32 s0,s0,#1
        vcvt\cond\s16\f32 s0,s0,#1
        vcvt\cond\u16\f32 s0,s0,#1
        vcvt\cond\u16\f32 s0,s0,#1
        vcvt\cond\s16\f64 d0,d0,#1
        vcvt\cond\s16\f64 d0,d0,#1
        vcvt\cond\u16\f64 d0,d0,#1
        vcvt\cond\u16\f64 d0,d0,#1
        .endm
        .endm
 
 
        cvti
        cvti
        cvti eq
        cvti eq
 
 
        .macro multi op cond="" n="" ia="ia" db="db"
        .macro multi op cond="" n="" ia="ia" db="db"
        itblock 4 \cond
        itblock 4 \cond
        \op\n\cond r0,{s3-s6}
        \op\n\cond r0,{s3-s6}
        \op\ia\cond r0,{s3-s6}
        \op\ia\cond r0,{s3-s6}
        \op\ia\cond r0!,{s3-s6}
        \op\ia\cond r0!,{s3-s6}
        \op\db\cond r0!,{s3-s6}
        \op\db\cond r0!,{s3-s6}
        itblock 4 \cond
        itblock 4 \cond
        \op\n\cond r0,{d3-d6}
        \op\n\cond r0,{d3-d6}
        \op\ia\cond r0,{d3-d6}
        \op\ia\cond r0,{d3-d6}
        \op\ia\cond r0!,{d3-d6}
        \op\ia\cond r0!,{d3-d6}
        \op\db\cond r0!,{d3-d6}
        \op\db\cond r0!,{d3-d6}
        .endm
        .endm
 
 
        multi vldm
        multi vldm
        multi vldm eq
        multi vldm eq
        multi vstm
        multi vstm
        multi vstm eq
        multi vstm eq
 
 
        .macro single op cond=""
        .macro single op cond=""
        itblock 2 \cond
        itblock 2 \cond
        \op\cond s0,[r0,#4]
        \op\cond s0,[r0,#4]
        \op\cond d0,[r0,#4]
        \op\cond d0,[r0,#4]
        .endm
        .endm
 
 
        single vldr
        single vldr
        single vldr eq
        single vldr eq
        single vstr
        single vstr
        single vstr eq
        single vstr eq
 
 

powered by: WebSVN 2.1.0

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