changeset a60405212dea in /z/repo/gem5 details: http://repo.gem5.org/gem5?cmd=changeset;node=a60405212dea description: arm: add preliminary ISA splits for ARM arch
diffstat: src/arch/arm/isa/insts/insts.isa | 10 +++++++++- src/arch/arm/isa/insts/neon.isa | 22 ++++++++++++++-------- src/arch/arm/isa/insts/neon64.isa | 3 +++ 3 files changed, 26 insertions(+), 9 deletions(-) diffs (113 lines): diff -r be0e1724eb39 -r a60405212dea src/arch/arm/isa/insts/insts.isa --- a/src/arch/arm/isa/insts/insts.isa Fri May 09 18:58:47 2014 -0400 +++ b/src/arch/arm/isa/insts/insts.isa Fri May 09 18:58:47 2014 -0400 @@ -53,6 +53,9 @@ ##include "misc.isa" ##include "misc64.isa" +split exec; +split decoder; + //Stores of a single item, AArch64 ##include "str64.isa" @@ -65,6 +68,8 @@ //Load/store multiple ##include "macromem.isa" +split exec; + //Data processing instructions ##include "data.isa" @@ -85,12 +90,15 @@ ##include "fp.isa" ##include "fp64.isa" +split exec; + //Neon ##include "neon.isa" //AArch64 Neon ##include "neon64.isa" +split decoder; ##include "neon64_mem.isa" -//m5 Psuedo-ops +//m5 Pseudo-ops ##include "m5ops.isa" diff -r be0e1724eb39 -r a60405212dea src/arch/arm/isa/insts/neon.isa --- a/src/arch/arm/isa/insts/neon.isa Fri May 09 18:58:47 2014 -0400 +++ b/src/arch/arm/isa/insts/neon.isa Fri May 09 18:58:47 2014 -0400 @@ -1058,7 +1058,11 @@ } }}; -output exec {{ +let {{ + header_output = "" + exec_output = "" + + vcompares = ''' static float vcgtFunc(float op1, float op2) { @@ -1082,7 +1086,8 @@ return 2.0; return (op1 == op2) ? 0.0 : 1.0; } - +''' + vcomparesL = ''' static float vcleFunc(float op1, float op2) { @@ -1098,7 +1103,8 @@ return 2.0; return (op1 < op2) ? 0.0 : 1.0; } - +''' + vacomparesG = ''' static float vacgtFunc(float op1, float op2) { @@ -1114,12 +1120,9 @@ return 2.0; return (fabsf(op1) >= fabsf(op2)) ? 0.0 : 1.0; } -}}; +''' -let {{ - - header_output = "" - exec_output = "" + exec_output += vcompares + vacomparesG smallUnsignedTypes = ("uint8_t", "uint16_t", "uint32_t") unsignedTypes = smallUnsignedTypes + ("uint64_t",) @@ -3414,6 +3417,9 @@ twoRegMiscInst("vrev64", "NVrev64D", "SimdAluOp", smallUnsignedTypes, 2, vrev64Code) twoRegMiscInst("vrev64", "NVrev64Q", "SimdAluOp", smallUnsignedTypes, 4, vrev64Code) + split('exec') + exec_output += vcompares + vcomparesL + vpaddlCode = ''' destElem = (BigElement)srcElem1 + (BigElement)srcElem2; ''' diff -r be0e1724eb39 -r a60405212dea src/arch/arm/isa/insts/neon64.isa --- a/src/arch/arm/isa/insts/neon64.isa Fri May 09 18:58:47 2014 -0400 +++ b/src/arch/arm/isa/insts/neon64.isa Fri May 09 18:58:47 2014 -0400 @@ -1959,6 +1959,9 @@ 2, minAcrossCode) twoRegAcrossInstX("sminv", "SminvQX", "SimdCmpOp", smallSignedTypes, 4, minAcrossCode) + + split('exec') + # SMLAL, SMLAL2 (by element) mlalCode = "destElem += (BigElement)srcElem1 * (BigElement)srcElem2;" threeRegLongInstX("smlal", "SmlalElemX", "SimdMultAccOp", _______________________________________________ gem5-dev mailing list gem5-dev@gem5.org http://m5sim.org/mailman/listinfo/gem5-dev