X86: Start using the stupd microop, and update statistics accordingly.

--HG--
extra : convert_revision : 4aa9daa4e19acfb3e6840ce5d83cf199e30c2f19
This commit is contained in:
Gabe Black 2007-10-21 18:45:46 -07:00
parent 4d15e4cf7b
commit 43cb78004b
20 changed files with 93 additions and 102 deletions

View file

@ -62,8 +62,7 @@ def macroop CALL_NEAR_I
limm t1, imm
rdip t7
# Check target of call
st t7, ss, [0, t0, rsp], "-env.dataSize"
subi rsp, rsp, dsz
stupd t7, ss, [0, t0, rsp], "-env.dataSize"
wrip t7, t1
};
@ -74,8 +73,7 @@ def macroop CALL_NEAR_R
rdip t1
# Check target of call
st t1, ss, [0, t0, rsp], "-env.dataSize"
subi rsp, rsp, dsz
stupd t1, ss, [0, t0, rsp], "-env.dataSize"
wripi reg, 0
};
@ -87,8 +85,7 @@ def macroop CALL_NEAR_M
rdip t7
ld t1, seg, sib, disp
# Check target of call
st t7, ss, [0, t0, rsp], "-env.dataSize"
subi rsp, rsp, dsz
stupd t7, ss, [0, t0, rsp], "-env.dataSize"
wripi t1, 0
};
@ -100,8 +97,7 @@ def macroop CALL_NEAR_P
rdip t7
ld t1, seg, riprel, disp
# Check target of call
st t7, ss, [0, t0, rsp], "-env.dataSize"
subi rsp, rsp, dsz
stupd t7, ss, [0, t0, rsp], "-env.dataSize"
wripi t1, 0
};
'''

View file

@ -89,8 +89,7 @@ def macroop PUSH_R {
# This needs to work slightly differently from the other versions of push
# because the -original- version of the stack pointer is what gets pushed
st reg, ss, [1, t0, rsp], "-env.dataSize"
subi rsp, rsp, dsz
stupd reg, ss, [1, t0, rsp], "-env.dataSize"
};
def macroop PUSH_I {
@ -98,8 +97,7 @@ def macroop PUSH_I {
.adjust_env oszIn64Override
limm t1, imm
st t1, ss, [1, t0, rsp], "-env.dataSize"
subi rsp, rsp, dsz
stupd t1, ss, [1, t0, rsp], "-env.dataSize"
};
def macroop PUSH_M {
@ -107,8 +105,7 @@ def macroop PUSH_M {
.adjust_env oszIn64Override
ld t1, seg, sib, disp
st t1, ss, [1, t0, rsp], "-env.dataSize"
subi rsp, rsp, dsz
stupd t1, ss, [1, t0, rsp], "-env.dataSize"
};
def macroop PUSH_P {
@ -117,22 +114,19 @@ def macroop PUSH_P {
rdip t7
ld t1, seg, riprel, disp
# Check stack address
subi rsp, rsp, dsz
st t1, ss, [1, t0, rsp]
stupd t1, ss, [1, t0, rsp], "-env.dataSize"
};
def macroop PUSHA {
# Check all the stack addresses.
st rax, ss, [1, t0, rsp], "-0 * env.dataSize"
st rcx, ss, [1, t0, rsp], "-1 * env.dataSize"
st rdx, ss, [1, t0, rsp], "-2 * env.dataSize"
st rbx, ss, [1, t0, rsp], "-3 * env.dataSize"
st rsp, ss, [1, t0, rsp], "-4 * env.dataSize"
st rbp, ss, [1, t0, rsp], "-5 * env.dataSize"
st rsi, ss, [1, t0, rsp], "-6 * env.dataSize"
st rdi, ss, [1, t0, rsp], "-7 * env.dataSize"
subi rsp, rsp, "8 * env.dataSize"
stupd rax, ss, [1, t0, rsp], "-env.dataSize"
stupd rcx, ss, [1, t0, rsp], "-env.dataSize"
stupd rdx, ss, [1, t0, rsp], "-env.dataSize"
stupd rbx, ss, [1, t0, rsp], "-env.dataSize"
stupd rsp, ss, [1, t0, rsp], "-env.dataSize"
stupd rbp, ss, [1, t0, rsp], "-env.dataSize"
stupd rsi, ss, [1, t0, rsp], "-env.dataSize"
stupd rdi, ss, [1, t0, rsp], "-env.dataSize"
};
def macroop POPA {

View file

@ -59,8 +59,7 @@ def macroop PUSHF {
# This should really read the whole flags register, not just user flags.
ruflags t1
st t1, ss, [1, t0, rsp], "-env.dataSize"
subi rsp, rsp, dsz
stupd t1, ss, [1, t0, rsp], "-env.dataSize"
};
def macroop POPF {

View file

@ -54,6 +54,7 @@ euid=100
executable=/dist/m5/cpu2000/binaries/x86/linux/gzip
gid=100
input=cin
max_stack_size=67108864
output=cout
pid=100
ppid=99

View file

@ -1,17 +1,17 @@
---------- Begin Simulation Statistics ----------
host_inst_rate 1268236 # Simulator instruction rate (inst/s)
host_mem_usage 175732 # Number of bytes of host memory used
host_seconds 1266.17 # Real time elapsed on the host
host_tick_rate 755026846 # Simulator tick rate (ticks/s)
host_inst_rate 1273928 # Simulator instruction rate (inst/s)
host_mem_usage 175856 # Number of bytes of host memory used
host_seconds 1258.84 # Real time elapsed on the host
host_tick_rate 758576488 # Simulator tick rate (ticks/s)
sim_freq 1000000000000 # Frequency of simulated ticks
sim_insts 1605801513 # Number of instructions simulated
sim_seconds 0.955992 # Number of seconds simulated
sim_ticks 955992360500 # Number of ticks simulated
sim_insts 1603675345 # Number of instructions simulated
sim_seconds 0.954929 # Number of seconds simulated
sim_ticks 954929276500 # Number of ticks simulated
system.cpu.idle_fraction 0 # Percentage of idle cycles
system.cpu.not_idle_fraction 1 # Percentage of non-idle cycles
system.cpu.numCycles 1911984722 # number of cpu cycles simulated
system.cpu.num_insts 1605801513 # Number of instructions executed
system.cpu.numCycles 1909858554 # number of cpu cycles simulated
system.cpu.num_insts 1603675345 # Number of instructions executed
system.cpu.num_refs 607157396 # Number of memory references
system.cpu.workload.PROG:num_syscalls 18 # Number of system calls

View file

@ -36,9 +36,9 @@ The Regents of The University of Michigan
All Rights Reserved
M5 compiled Oct 12 2007 10:09:31
M5 started Fri Oct 12 10:23:41 2007
M5 compiled Oct 19 2007 16:48:38
M5 started Fri Oct 19 18:08:21 2007
M5 executing on nacho
command line: build/X86_SE/m5.fast -d build/X86_SE/tests/fast/long/00.gzip/x86/linux/simple-atomic tests/run.py long/00.gzip/x86/linux/simple-atomic
Global frequency set at 1000000000000 ticks per second
Exiting @ tick 955992360500 because target called exit()
Exiting @ tick 954929276500 because target called exit()

View file

@ -54,6 +54,7 @@ euid=100
executable=/dist/m5/cpu2000/binaries/x86/linux/mcf
gid=100
input=/dist/m5/cpu2000/data/mcf/smred/input/mcf.in
max_stack_size=67108864
output=cout
pid=100
ppid=99

View file

@ -1,17 +1,17 @@
---------- Begin Simulation Statistics ----------
host_inst_rate 1236188 # Simulator instruction rate (inst/s)
host_mem_usage 310236 # Number of bytes of host memory used
host_seconds 224.96 # Real time elapsed on the host
host_tick_rate 755369641 # Simulator tick rate (ticks/s)
host_inst_rate 1133815 # Simulator instruction rate (inst/s)
host_mem_usage 310268 # Number of bytes of host memory used
host_seconds 237.78 # Real time elapsed on the host
host_tick_rate 696782714 # Simulator tick rate (ticks/s)
sim_freq 1000000000000 # Frequency of simulated ticks
sim_insts 278095687 # Number of instructions simulated
sim_seconds 0.169930 # Number of seconds simulated
sim_ticks 169929975000 # Number of ticks simulated
sim_insts 269599525 # Number of instructions simulated
sim_seconds 0.165682 # Number of seconds simulated
sim_ticks 165681894000 # Number of ticks simulated
system.cpu.idle_fraction 0 # Percentage of idle cycles
system.cpu.not_idle_fraction 1 # Percentage of non-idle cycles
system.cpu.numCycles 339859951 # number of cpu cycles simulated
system.cpu.num_insts 278095687 # Number of instructions executed
system.cpu.numCycles 331363789 # number of cpu cycles simulated
system.cpu.num_insts 269599525 # Number of instructions executed
system.cpu.num_refs 124052668 # Number of memory references
system.cpu.workload.PROG:num_syscalls 429 # Number of system calls

View file

@ -21,9 +21,9 @@ The Regents of The University of Michigan
All Rights Reserved
M5 compiled Oct 12 2007 10:09:31
M5 started Fri Oct 12 10:09:33 2007
M5 compiled Oct 19 2007 16:48:38
M5 started Fri Oct 19 16:54:37 2007
M5 executing on nacho
command line: build/X86_SE/m5.fast -d build/X86_SE/tests/fast/long/10.mcf/x86/linux/simple-atomic tests/run.py long/10.mcf/x86/linux/simple-atomic
Global frequency set at 1000000000000 ticks per second
Exiting @ tick 169929975000 because target called exit()
Exiting @ tick 165681894000 because target called exit()

View file

@ -1,17 +1,17 @@
---------- Begin Simulation Statistics ----------
host_inst_rate 601084 # Simulator instruction rate (inst/s)
host_mem_usage 179664 # Number of bytes of host memory used
host_seconds 2521.91 # Real time elapsed on the host
host_tick_rate 348496572 # Simulator tick rate (ticks/s)
host_inst_rate 1349569 # Simulator instruction rate (inst/s)
host_mem_usage 179560 # Number of bytes of host memory used
host_seconds 1098.57 # Real time elapsed on the host
host_tick_rate 784871141 # Simulator tick rate (ticks/s)
sim_freq 1000000000000 # Frequency of simulated ticks
sim_insts 1515877389 # Number of instructions simulated
sim_seconds 0.878876 # Number of seconds simulated
sim_ticks 878876325000 # Number of ticks simulated
sim_insts 1482589975 # Number of instructions simulated
sim_seconds 0.862233 # Number of seconds simulated
sim_ticks 862232618000 # Number of ticks simulated
system.cpu.idle_fraction 0 # Percentage of idle cycles
system.cpu.not_idle_fraction 1 # Percentage of non-idle cycles
system.cpu.numCycles 1757752651 # number of cpu cycles simulated
system.cpu.num_insts 1515877389 # Number of instructions executed
system.cpu.numCycles 1724465237 # number of cpu cycles simulated
system.cpu.num_insts 1482589975 # Number of instructions executed
system.cpu.num_refs 533543283 # Number of memory references
system.cpu.workload.PROG:num_syscalls 541 # Number of system calls

View file

@ -1,4 +1,4 @@
0: system.remote_gdb.listener: listening for remote gdb on port 7002
0: system.remote_gdb.listener: listening for remote gdb on port 7000
warn: Entering event queue @ 0. Starting simulation...
warn: instruction 'fnstcw_Mw' unimplemented
warn: instruction 'fldcw_Mw' unimplemented

View file

@ -64,9 +64,9 @@ The Regents of The University of Michigan
All Rights Reserved
M5 compiled Oct 15 2007 20:49:03
M5 started Mon Oct 15 20:49:24 2007
M5 compiled Oct 19 2007 16:48:38
M5 started Fri Oct 19 18:41:37 2007
M5 executing on nacho
command line: build/X86_SE/m5.fast -d build/X86_SE/tests/fast/long/20.parser/x86/linux/simple-atomic tests/run.py long/20.parser/x86/linux/simple-atomic
Global frequency set at 1000000000000 ticks per second
Exiting @ tick 878876325000 because target called exit()
Exiting @ tick 862232618000 because target called exit()

View file

@ -1,17 +1,17 @@
---------- Begin Simulation Statistics ----------
host_inst_rate 1030685 # Simulator instruction rate (inst/s)
host_mem_usage 175732 # Number of bytes of host memory used
host_seconds 4491.39 # Real time elapsed on the host
host_tick_rate 628581745 # Simulator tick rate (ticks/s)
host_inst_rate 1178554 # Simulator instruction rate (inst/s)
host_mem_usage 175672 # Number of bytes of host memory used
host_seconds 3899.42 # Real time elapsed on the host
host_tick_rate 719706854 # Simulator tick rate (ticks/s)
sim_freq 1000000000000 # Frequency of simulated ticks
sim_insts 4629206417 # Number of instructions simulated
sim_seconds 2.823204 # Number of seconds simulated
sim_ticks 2823203650000 # Number of ticks simulated
sim_insts 4595671909 # Number of instructions simulated
sim_seconds 2.806436 # Number of seconds simulated
sim_ticks 2806436396000 # Number of ticks simulated
system.cpu.idle_fraction 0 # Percentage of idle cycles
system.cpu.not_idle_fraction 1 # Percentage of non-idle cycles
system.cpu.numCycles 5646407301 # number of cpu cycles simulated
system.cpu.num_insts 4629206417 # Number of instructions executed
system.cpu.numCycles 5612872793 # number of cpu cycles simulated
system.cpu.num_insts 4595671909 # Number of instructions executed
system.cpu.num_refs 1686312529 # Number of memory references
system.cpu.workload.PROG:num_syscalls 33 # Number of system calls

View file

@ -19,9 +19,9 @@ The Regents of The University of Michigan
All Rights Reserved
M5 compiled Oct 15 2007 20:49:03
M5 started Tue Oct 16 16:42:54 2007
M5 compiled Oct 19 2007 16:48:38
M5 started Fri Oct 19 16:59:11 2007
M5 executing on nacho
command line: build/X86_SE/m5.fast -d build/X86_SE/tests/fast/long/60.bzip2/x86/linux/simple-atomic tests/run.py long/60.bzip2/x86/linux/simple-atomic
Global frequency set at 1000000000000 ticks per second
Exiting @ tick 2823203650000 because target called exit()
Exiting @ tick 2806436396000 because target called exit()

View file

@ -54,6 +54,7 @@ euid=100
executable=/dist/m5/cpu2000/binaries/x86/linux/twolf
gid=100
input=cin
max_stack_size=67108864
output=cout
pid=100
ppid=99

View file

@ -1,17 +1,17 @@
---------- Begin Simulation Statistics ----------
host_inst_rate 1236095 # Simulator instruction rate (inst/s)
host_mem_usage 183352 # Number of bytes of host memory used
host_seconds 177.93 # Real time elapsed on the host
host_tick_rate 734446997 # Simulator tick rate (ticks/s)
host_inst_rate 1299831 # Simulator instruction rate (inst/s)
host_mem_usage 183188 # Number of bytes of host memory used
host_seconds 167.72 # Real time elapsed on the host
host_tick_rate 773401156 # Simulator tick rate (ticks/s)
sim_freq 1000000000000 # Frequency of simulated ticks
sim_insts 219936106 # Number of instructions simulated
sim_seconds 0.130679 # Number of seconds simulated
sim_ticks 130679026000 # Number of ticks simulated
sim_insts 218004208 # Number of instructions simulated
sim_seconds 0.129713 # Number of seconds simulated
sim_ticks 129713077000 # Number of ticks simulated
system.cpu.idle_fraction 0 # Percentage of idle cycles
system.cpu.not_idle_fraction 1 # Percentage of non-idle cycles
system.cpu.numCycles 261358053 # number of cpu cycles simulated
system.cpu.num_insts 219936106 # Number of instructions executed
system.cpu.numCycles 259426155 # number of cpu cycles simulated
system.cpu.num_insts 218004208 # Number of instructions executed
system.cpu.num_refs 77164404 # Number of memory references
system.cpu.workload.PROG:num_syscalls 395 # Number of system calls

View file

@ -18,11 +18,9 @@ The Regents of The University of Michigan
All Rights Reserved
M5 compiled Oct 12 2007 09:55:57
M5 started Fri Oct 12 09:59:28 2007
M5 compiled Oct 19 2007 16:48:38
M5 started Fri Oct 19 16:50:34 2007
M5 executing on nacho
command line: build/X86_SE/m5.fast -d build/X86_SE/tests/fast/long/70.twolf/x86/linux/simple-atomic tests/run.py long/70.twolf/x86/linux/simple-atomic
Couldn't unlink build/X86_SE/tests/fast/long/70.twolf/x86/linux/simple-atomic/smred.sav
Couldn't unlink build/X86_SE/tests/fast/long/70.twolf/x86/linux/simple-atomic/smred.sv2
Global frequency set at 1000000000000 ticks per second
Exiting @ tick 130679026000 because target called exit()
Exiting @ tick 129713077000 because target called exit()

View file

@ -54,6 +54,7 @@ euid=100
executable=/dist/m5/regression/test-progs/hello/bin/x86/linux/hello
gid=100
input=cin
max_stack_size=67108864
output=cout
pid=100
ppid=99

View file

@ -1,17 +1,17 @@
---------- Begin Simulation Statistics ----------
host_inst_rate 66885 # Simulator instruction rate (inst/s)
host_mem_usage 172164 # Number of bytes of host memory used
host_seconds 0.13 # Real time elapsed on the host
host_tick_rate 38756587 # Simulator tick rate (ticks/s)
host_inst_rate 132602 # Simulator instruction rate (inst/s)
host_mem_usage 172228 # Number of bytes of host memory used
host_seconds 0.06 # Real time elapsed on the host
host_tick_rate 76882532 # Simulator tick rate (ticks/s)
sim_freq 1000000000000 # Frequency of simulated ticks
sim_insts 8584 # Number of instructions simulated
sim_insts 8384 # Number of instructions simulated
sim_seconds 0.000005 # Number of seconds simulated
sim_ticks 4986500 # Number of ticks simulated
sim_ticks 4886500 # Number of ticks simulated
system.cpu.idle_fraction 0 # Percentage of idle cycles
system.cpu.not_idle_fraction 1 # Percentage of non-idle cycles
system.cpu.numCycles 9974 # number of cpu cycles simulated
system.cpu.num_insts 8584 # Number of instructions executed
system.cpu.numCycles 9774 # number of cpu cycles simulated
system.cpu.num_insts 8384 # Number of instructions executed
system.cpu.num_refs 1765 # Number of memory references
system.cpu.workload.PROG:num_syscalls 11 # Number of system calls

View file

@ -6,9 +6,9 @@ The Regents of The University of Michigan
All Rights Reserved
M5 compiled Oct 12 2007 09:55:57
M5 started Fri Oct 12 09:56:08 2007
M5 compiled Oct 19 2007 16:48:38
M5 started Fri Oct 19 16:48:47 2007
M5 executing on nacho
command line: build/X86_SE/m5.fast -d build/X86_SE/tests/fast/quick/00.hello/x86/linux/simple-atomic tests/run.py quick/00.hello/x86/linux/simple-atomic
Global frequency set at 1000000000000 ticks per second
Exiting @ tick 4986500 because target called exit()
Exiting @ tick 4886500 because target called exit()