summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorgpgpu-sim <[email protected]>2016-07-04 17:08:16 -0700
committerGitHub <[email protected]>2016-07-04 17:08:16 -0700
commitc9852bfe00b508644e894c1ebc34d90081d907c5 (patch)
treeb5ce46eecd4299f423f0b1057373af484dbd606c
parentd90b6ad29a7cb24841841f7c54fcb4c2b1e929eb (diff)
parent2683b8bd7ba9950e0aa174915ef9ff64e0a20421 (diff)
Merge pull request #27 from sspenst/dev
Restored madp instruction
-rw-r--r--src/cuda-sim/cuda-sim.cc2
-rw-r--r--src/cuda-sim/instructions.cc5
-rw-r--r--src/cuda-sim/opcodes.def1
-rw-r--r--src/cuda-sim/ptx.l1
4 files changed, 8 insertions, 1 deletions
diff --git a/src/cuda-sim/cuda-sim.cc b/src/cuda-sim/cuda-sim.cc
index fba3a59..09e9a81 100644
--- a/src/cuda-sim/cuda-sim.cc
+++ b/src/cuda-sim/cuda-sim.cc
@@ -719,7 +719,7 @@ void ptx_instruction::set_opcode_and_latency()
break;
}
break;
- case MAD_OP: case MADC_OP:
+ case MAD_OP: case MADC_OP: case MADP_OP:
//MAD latency
switch(get_type()){
case F32_TYPE:
diff --git a/src/cuda-sim/instructions.cc b/src/cuda-sim/instructions.cc
index 02ce01c..7b0f4fa 100644
--- a/src/cuda-sim/instructions.cc
+++ b/src/cuda-sim/instructions.cc
@@ -2496,6 +2496,11 @@ void mad_impl( const ptx_instruction *pI, ptx_thread_info *thread )
mad_def(pI, thread, false);
}
+void madp_impl( const ptx_instruction *pI, ptx_thread_info *thread )
+{
+ mad_def(pI, thread, true);
+}
+
void madc_impl( const ptx_instruction *pI, ptx_thread_info *thread )
{
mad_def(pI, thread, true);
diff --git a/src/cuda-sim/opcodes.def b/src/cuda-sim/opcodes.def
index 874acc7..2ee6976 100644
--- a/src/cuda-sim/opcodes.def
+++ b/src/cuda-sim/opcodes.def
@@ -70,6 +70,7 @@ OP_DEF(LG2_OP,lg2_impl,"lg2",1,4)
OP_DEF(MAD24_OP,mad24_impl,"mad24",1,2)
OP_DEF(MAD_OP,mad_impl,"mad",1,2)
OP_DEF(MADC_OP,madc_impl,"madc",1,2)
+OP_DEF(MADP_OP,madp_impl,"madp",1,2)
OP_DEF(MAX_OP,max_impl,"max",1,1)
OP_DEF(MEMBAR_OP,membar_impl,"membar",1,3)
OP_DEF(MIN_OP,min_impl,"min",1,1)
diff --git a/src/cuda-sim/ptx.l b/src/cuda-sim/ptx.l
index b8ce497..88ccf6a 100644
--- a/src/cuda-sim/ptx.l
+++ b/src/cuda-sim/ptx.l
@@ -87,6 +87,7 @@ lg2 TC; ptx_lval.int_value = LG2_OP; return OPCODE;
mad24 TC; ptx_lval.int_value = MAD24_OP; return OPCODE;
mad TC; ptx_lval.int_value = MAD_OP; return OPCODE;
madc TC; ptx_lval.int_value = MADC_OP; return OPCODE;
+madp TC; ptx_lval.int_value = MADP_OP; return OPCODE;
max TC; ptx_lval.int_value = MAX_OP; return OPCODE;
membar TC; ptx_lval.int_value = MEMBAR_OP; return OPCODE;
min TC; ptx_lval.int_value = MIN_OP; return OPCODE;