X86: Use the cda microop where appropriate. The ENTER instruction still needs these.
--HG-- extra : convert_revision : c5a1a6d66c454f252d3b798c38a6798e7dd486f0
This commit is contained in:
parent
421aea980f
commit
7d396b1bf6
|
@ -58,8 +58,9 @@ def macroop POP_R {
|
||||||
# Make the default data size of pops 64 bits in 64 bit mode
|
# Make the default data size of pops 64 bits in 64 bit mode
|
||||||
.adjust_env oszIn64Override
|
.adjust_env oszIn64Override
|
||||||
|
|
||||||
ld reg, ss, [1, t0, rsp]
|
ld t1, ss, [1, t0, rsp]
|
||||||
addi rsp, rsp, dsz
|
addi rsp, rsp, dsz
|
||||||
|
mov reg, reg, t1
|
||||||
};
|
};
|
||||||
|
|
||||||
def macroop POP_M {
|
def macroop POP_M {
|
||||||
|
@ -67,7 +68,7 @@ def macroop POP_M {
|
||||||
.adjust_env oszIn64Override
|
.adjust_env oszIn64Override
|
||||||
|
|
||||||
ld t1, ss, [1, t0, rsp]
|
ld t1, ss, [1, t0, rsp]
|
||||||
# Check stack address
|
cda seg, sib, disp
|
||||||
addi rsp, rsp, dsz
|
addi rsp, rsp, dsz
|
||||||
st t1, seg, sib, disp
|
st t1, seg, sib, disp
|
||||||
};
|
};
|
||||||
|
@ -78,7 +79,7 @@ def macroop POP_P {
|
||||||
|
|
||||||
rdip t7
|
rdip t7
|
||||||
ld t1, ss, [1, t0, rsp]
|
ld t1, ss, [1, t0, rsp]
|
||||||
# Check stack address
|
cda seg, sib, disp
|
||||||
addi rsp, rsp, dsz
|
addi rsp, rsp, dsz
|
||||||
st t1, seg, riprel, disp
|
st t1, seg, riprel, disp
|
||||||
};
|
};
|
||||||
|
@ -87,8 +88,6 @@ def macroop PUSH_R {
|
||||||
# Make the default data size of pops 64 bits in 64 bit mode
|
# Make the default data size of pops 64 bits in 64 bit mode
|
||||||
.adjust_env oszIn64Override
|
.adjust_env oszIn64Override
|
||||||
|
|
||||||
# This needs to work slightly differently from the other versions of push
|
|
||||||
# because the -original- version of the stack pointer is what gets pushed
|
|
||||||
stupd reg, ss, [1, t0, rsp], "-env.dataSize"
|
stupd reg, ss, [1, t0, rsp], "-env.dataSize"
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -118,7 +117,10 @@ def macroop PUSH_P {
|
||||||
};
|
};
|
||||||
|
|
||||||
def macroop PUSHA {
|
def macroop PUSHA {
|
||||||
# Check all the stack addresses.
|
# Check all the stack addresses. We'll assume that if the beginning and
|
||||||
|
# end are ok, then the stuff in the middle should be as well.
|
||||||
|
cda ss, [1, t0, rsp], "-env.dataSize"
|
||||||
|
cda ss, [1, t0, rsp], "-8 * env.dataSize"
|
||||||
stupd rax, ss, [1, t0, rsp], "-env.dataSize"
|
stupd rax, ss, [1, t0, rsp], "-env.dataSize"
|
||||||
stupd rcx, ss, [1, t0, rsp], "-env.dataSize"
|
stupd rcx, ss, [1, t0, rsp], "-env.dataSize"
|
||||||
stupd rdx, ss, [1, t0, rsp], "-env.dataSize"
|
stupd rdx, ss, [1, t0, rsp], "-env.dataSize"
|
||||||
|
@ -130,14 +132,17 @@ def macroop PUSHA {
|
||||||
};
|
};
|
||||||
|
|
||||||
def macroop POPA {
|
def macroop POPA {
|
||||||
# Check all the stack addresses.
|
# Check all the stack addresses. We'll assume that if the beginning and
|
||||||
ld rdi, ss, [1, t0, rsp], "0 * env.dataSize"
|
# end are ok, then the stuff in the middle should be as well.
|
||||||
|
ld t1, ss, [1, t0, rsp], "0 * env.dataSize"
|
||||||
|
ld t2, ss, [1, t0, rsp], "7 * env.dataSize"
|
||||||
|
mov rdi, rdi, t1
|
||||||
ld rsi, ss, [1, t0, rsp], "1 * env.dataSize"
|
ld rsi, ss, [1, t0, rsp], "1 * env.dataSize"
|
||||||
ld rbp, ss, [1, t0, rsp], "2 * env.dataSize"
|
ld rbp, ss, [1, t0, rsp], "2 * env.dataSize"
|
||||||
ld rbx, ss, [1, t0, rsp], "4 * env.dataSize"
|
ld rbx, ss, [1, t0, rsp], "4 * env.dataSize"
|
||||||
ld rdx, ss, [1, t0, rsp], "5 * env.dataSize"
|
ld rdx, ss, [1, t0, rsp], "5 * env.dataSize"
|
||||||
ld rcx, ss, [1, t0, rsp], "6 * env.dataSize"
|
ld rcx, ss, [1, t0, rsp], "6 * env.dataSize"
|
||||||
ld rax, ss, [1, t0, rsp], "7 * env.dataSize"
|
mov rax, rax, t2
|
||||||
addi rsp, rsp, "8 * env.dataSize"
|
addi rsp, rsp, "8 * env.dataSize"
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -1,17 +1,17 @@
|
||||||
|
|
||||||
---------- Begin Simulation Statistics ----------
|
---------- Begin Simulation Statistics ----------
|
||||||
host_inst_rate 1273928 # Simulator instruction rate (inst/s)
|
host_inst_rate 1240763 # Simulator instruction rate (inst/s)
|
||||||
host_mem_usage 175856 # Number of bytes of host memory used
|
host_mem_usage 175872 # Number of bytes of host memory used
|
||||||
host_seconds 1258.84 # Real time elapsed on the host
|
host_seconds 1292.50 # Real time elapsed on the host
|
||||||
host_tick_rate 758576488 # Simulator tick rate (ticks/s)
|
host_tick_rate 738827746 # Simulator tick rate (ticks/s)
|
||||||
sim_freq 1000000000000 # Frequency of simulated ticks
|
sim_freq 1000000000000 # Frequency of simulated ticks
|
||||||
sim_insts 1603675345 # Number of instructions simulated
|
sim_insts 1603680167 # Number of instructions simulated
|
||||||
sim_seconds 0.954929 # Number of seconds simulated
|
sim_seconds 0.954932 # Number of seconds simulated
|
||||||
sim_ticks 954929276500 # Number of ticks simulated
|
sim_ticks 954931687500 # Number of ticks simulated
|
||||||
system.cpu.idle_fraction 0 # Percentage of idle cycles
|
system.cpu.idle_fraction 0 # Percentage of idle cycles
|
||||||
system.cpu.not_idle_fraction 1 # Percentage of non-idle cycles
|
system.cpu.not_idle_fraction 1 # Percentage of non-idle cycles
|
||||||
system.cpu.numCycles 1909858554 # number of cpu cycles simulated
|
system.cpu.numCycles 1909863376 # number of cpu cycles simulated
|
||||||
system.cpu.num_insts 1603675345 # Number of instructions executed
|
system.cpu.num_insts 1603680167 # Number of instructions executed
|
||||||
system.cpu.num_refs 607157396 # Number of memory references
|
system.cpu.num_refs 607157396 # Number of memory references
|
||||||
system.cpu.workload.PROG:num_syscalls 18 # Number of system calls
|
system.cpu.workload.PROG:num_syscalls 18 # Number of system calls
|
||||||
|
|
||||||
|
|
|
@ -36,9 +36,9 @@ The Regents of The University of Michigan
|
||||||
All Rights Reserved
|
All Rights Reserved
|
||||||
|
|
||||||
|
|
||||||
M5 compiled Oct 19 2007 16:48:38
|
M5 compiled Oct 21 2007 20:57:52
|
||||||
M5 started Fri Oct 19 18:08:21 2007
|
M5 started Sun Oct 21 21:35:26 2007
|
||||||
M5 executing on nacho
|
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
|
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
|
Global frequency set at 1000000000000 ticks per second
|
||||||
Exiting @ tick 954929276500 because target called exit()
|
Exiting @ tick 954931687500 because target called exit()
|
||||||
|
|
|
@ -1,17 +1,17 @@
|
||||||
|
|
||||||
---------- Begin Simulation Statistics ----------
|
---------- Begin Simulation Statistics ----------
|
||||||
host_inst_rate 1133815 # Simulator instruction rate (inst/s)
|
host_inst_rate 1168424 # Simulator instruction rate (inst/s)
|
||||||
host_mem_usage 310268 # Number of bytes of host memory used
|
host_mem_usage 310284 # Number of bytes of host memory used
|
||||||
host_seconds 237.78 # Real time elapsed on the host
|
host_seconds 230.78 # Real time elapsed on the host
|
||||||
host_tick_rate 696782714 # Simulator tick rate (ticks/s)
|
host_tick_rate 718029499 # Simulator tick rate (ticks/s)
|
||||||
sim_freq 1000000000000 # Frequency of simulated ticks
|
sim_freq 1000000000000 # Frequency of simulated ticks
|
||||||
sim_insts 269599525 # Number of instructions simulated
|
sim_insts 269642969 # Number of instructions simulated
|
||||||
sim_seconds 0.165682 # Number of seconds simulated
|
sim_seconds 0.165704 # Number of seconds simulated
|
||||||
sim_ticks 165681894000 # Number of ticks simulated
|
sim_ticks 165703616000 # Number of ticks simulated
|
||||||
system.cpu.idle_fraction 0 # Percentage of idle cycles
|
system.cpu.idle_fraction 0 # Percentage of idle cycles
|
||||||
system.cpu.not_idle_fraction 1 # Percentage of non-idle cycles
|
system.cpu.not_idle_fraction 1 # Percentage of non-idle cycles
|
||||||
system.cpu.numCycles 331363789 # number of cpu cycles simulated
|
system.cpu.numCycles 331407233 # number of cpu cycles simulated
|
||||||
system.cpu.num_insts 269599525 # Number of instructions executed
|
system.cpu.num_insts 269642969 # Number of instructions executed
|
||||||
system.cpu.num_refs 124052668 # Number of memory references
|
system.cpu.num_refs 124052668 # Number of memory references
|
||||||
system.cpu.workload.PROG:num_syscalls 429 # Number of system calls
|
system.cpu.workload.PROG:num_syscalls 429 # Number of system calls
|
||||||
|
|
||||||
|
|
|
@ -21,9 +21,9 @@ The Regents of The University of Michigan
|
||||||
All Rights Reserved
|
All Rights Reserved
|
||||||
|
|
||||||
|
|
||||||
M5 compiled Oct 19 2007 16:48:38
|
M5 compiled Oct 21 2007 20:57:52
|
||||||
M5 started Fri Oct 19 16:54:37 2007
|
M5 started Sun Oct 21 21:57:00 2007
|
||||||
M5 executing on nacho
|
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
|
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
|
Global frequency set at 1000000000000 ticks per second
|
||||||
Exiting @ tick 165681894000 because target called exit()
|
Exiting @ tick 165703616000 because target called exit()
|
||||||
|
|
|
@ -1,17 +1,17 @@
|
||||||
|
|
||||||
---------- Begin Simulation Statistics ----------
|
---------- Begin Simulation Statistics ----------
|
||||||
host_inst_rate 1349569 # Simulator instruction rate (inst/s)
|
host_inst_rate 1244280 # Simulator instruction rate (inst/s)
|
||||||
host_mem_usage 179560 # Number of bytes of host memory used
|
host_mem_usage 179592 # Number of bytes of host memory used
|
||||||
host_seconds 1098.57 # Real time elapsed on the host
|
host_seconds 1193.15 # Real time elapsed on the host
|
||||||
host_tick_rate 784871141 # Simulator tick rate (ticks/s)
|
host_tick_rate 723499766 # Simulator tick rate (ticks/s)
|
||||||
sim_freq 1000000000000 # Frequency of simulated ticks
|
sim_freq 1000000000000 # Frequency of simulated ticks
|
||||||
sim_insts 1482589975 # Number of instructions simulated
|
sim_insts 1484611664 # Number of instructions simulated
|
||||||
sim_seconds 0.862233 # Number of seconds simulated
|
sim_seconds 0.863243 # Number of seconds simulated
|
||||||
sim_ticks 862232618000 # Number of ticks simulated
|
sim_ticks 863243462500 # Number of ticks simulated
|
||||||
system.cpu.idle_fraction 0 # Percentage of idle cycles
|
system.cpu.idle_fraction 0 # Percentage of idle cycles
|
||||||
system.cpu.not_idle_fraction 1 # Percentage of non-idle cycles
|
system.cpu.not_idle_fraction 1 # Percentage of non-idle cycles
|
||||||
system.cpu.numCycles 1724465237 # number of cpu cycles simulated
|
system.cpu.numCycles 1726486926 # number of cpu cycles simulated
|
||||||
system.cpu.num_insts 1482589975 # Number of instructions executed
|
system.cpu.num_insts 1484611664 # Number of instructions executed
|
||||||
system.cpu.num_refs 533543283 # Number of memory references
|
system.cpu.num_refs 533543283 # Number of memory references
|
||||||
system.cpu.workload.PROG:num_syscalls 541 # Number of system calls
|
system.cpu.workload.PROG:num_syscalls 541 # Number of system calls
|
||||||
|
|
||||||
|
|
|
@ -64,9 +64,9 @@ The Regents of The University of Michigan
|
||||||
All Rights Reserved
|
All Rights Reserved
|
||||||
|
|
||||||
|
|
||||||
M5 compiled Oct 19 2007 16:48:38
|
M5 compiled Oct 21 2007 20:57:52
|
||||||
M5 started Fri Oct 19 18:41:37 2007
|
M5 started Sun Oct 21 22:00:51 2007
|
||||||
M5 executing on nacho
|
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
|
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
|
Global frequency set at 1000000000000 ticks per second
|
||||||
Exiting @ tick 862232618000 because target called exit()
|
Exiting @ tick 863243462500 because target called exit()
|
||||||
|
|
|
@ -1,17 +1,17 @@
|
||||||
|
|
||||||
---------- Begin Simulation Statistics ----------
|
---------- Begin Simulation Statistics ----------
|
||||||
host_inst_rate 1178554 # Simulator instruction rate (inst/s)
|
host_inst_rate 1084871 # Simulator instruction rate (inst/s)
|
||||||
host_mem_usage 175672 # Number of bytes of host memory used
|
host_mem_usage 175684 # Number of bytes of host memory used
|
||||||
host_seconds 3899.42 # Real time elapsed on the host
|
host_seconds 4236.15 # Real time elapsed on the host
|
||||||
host_tick_rate 719706854 # Simulator tick rate (ticks/s)
|
host_tick_rate 662497504 # Simulator tick rate (ticks/s)
|
||||||
sim_freq 1000000000000 # Frequency of simulated ticks
|
sim_freq 1000000000000 # Frequency of simulated ticks
|
||||||
sim_insts 4595671909 # Number of instructions simulated
|
sim_insts 4595672201 # Number of instructions simulated
|
||||||
sim_seconds 2.806436 # Number of seconds simulated
|
sim_seconds 2.806437 # Number of seconds simulated
|
||||||
sim_ticks 2806436396000 # Number of ticks simulated
|
sim_ticks 2806436542000 # Number of ticks simulated
|
||||||
system.cpu.idle_fraction 0 # Percentage of idle cycles
|
system.cpu.idle_fraction 0 # Percentage of idle cycles
|
||||||
system.cpu.not_idle_fraction 1 # Percentage of non-idle cycles
|
system.cpu.not_idle_fraction 1 # Percentage of non-idle cycles
|
||||||
system.cpu.numCycles 5612872793 # number of cpu cycles simulated
|
system.cpu.numCycles 5612873085 # number of cpu cycles simulated
|
||||||
system.cpu.num_insts 4595671909 # Number of instructions executed
|
system.cpu.num_insts 4595672201 # Number of instructions executed
|
||||||
system.cpu.num_refs 1686312529 # Number of memory references
|
system.cpu.num_refs 1686312529 # Number of memory references
|
||||||
system.cpu.workload.PROG:num_syscalls 33 # Number of system calls
|
system.cpu.workload.PROG:num_syscalls 33 # Number of system calls
|
||||||
|
|
||||||
|
|
|
@ -19,9 +19,9 @@ The Regents of The University of Michigan
|
||||||
All Rights Reserved
|
All Rights Reserved
|
||||||
|
|
||||||
|
|
||||||
M5 compiled Oct 19 2007 16:48:38
|
M5 compiled Oct 21 2007 20:57:52
|
||||||
M5 started Fri Oct 19 16:59:11 2007
|
M5 started Sun Oct 21 22:20:45 2007
|
||||||
M5 executing on nacho
|
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
|
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
|
Global frequency set at 1000000000000 ticks per second
|
||||||
Exiting @ tick 2806436396000 because target called exit()
|
Exiting @ tick 2806436542000 because target called exit()
|
||||||
|
|
|
@ -1,17 +1,17 @@
|
||||||
|
|
||||||
---------- Begin Simulation Statistics ----------
|
---------- Begin Simulation Statistics ----------
|
||||||
host_inst_rate 1299831 # Simulator instruction rate (inst/s)
|
host_inst_rate 1304954 # Simulator instruction rate (inst/s)
|
||||||
host_mem_usage 183188 # Number of bytes of host memory used
|
host_mem_usage 183200 # Number of bytes of host memory used
|
||||||
host_seconds 167.72 # Real time elapsed on the host
|
host_seconds 167.36 # Real time elapsed on the host
|
||||||
host_tick_rate 773401156 # Simulator tick rate (ticks/s)
|
host_tick_rate 776224834 # Simulator tick rate (ticks/s)
|
||||||
sim_freq 1000000000000 # Frequency of simulated ticks
|
sim_freq 1000000000000 # Frequency of simulated ticks
|
||||||
sim_insts 218004208 # Number of instructions simulated
|
sim_insts 218399764 # Number of instructions simulated
|
||||||
sim_seconds 0.129713 # Number of seconds simulated
|
sim_seconds 0.129911 # Number of seconds simulated
|
||||||
sim_ticks 129713077000 # Number of ticks simulated
|
sim_ticks 129910855000 # Number of ticks simulated
|
||||||
system.cpu.idle_fraction 0 # Percentage of idle cycles
|
system.cpu.idle_fraction 0 # Percentage of idle cycles
|
||||||
system.cpu.not_idle_fraction 1 # Percentage of non-idle cycles
|
system.cpu.not_idle_fraction 1 # Percentage of non-idle cycles
|
||||||
system.cpu.numCycles 259426155 # number of cpu cycles simulated
|
system.cpu.numCycles 259821711 # number of cpu cycles simulated
|
||||||
system.cpu.num_insts 218004208 # Number of instructions executed
|
system.cpu.num_insts 218399764 # Number of instructions executed
|
||||||
system.cpu.num_refs 77164404 # Number of memory references
|
system.cpu.num_refs 77164404 # Number of memory references
|
||||||
system.cpu.workload.PROG:num_syscalls 395 # Number of system calls
|
system.cpu.workload.PROG:num_syscalls 395 # Number of system calls
|
||||||
|
|
||||||
|
|
|
@ -18,9 +18,9 @@ The Regents of The University of Michigan
|
||||||
All Rights Reserved
|
All Rights Reserved
|
||||||
|
|
||||||
|
|
||||||
M5 compiled Oct 19 2007 16:48:38
|
M5 compiled Oct 21 2007 20:57:52
|
||||||
M5 started Fri Oct 19 16:50:34 2007
|
M5 started Sun Oct 21 23:31:23 2007
|
||||||
M5 executing on nacho
|
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
|
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
|
||||||
Global frequency set at 1000000000000 ticks per second
|
Global frequency set at 1000000000000 ticks per second
|
||||||
Exiting @ tick 129713077000 because target called exit()
|
Exiting @ tick 129910855000 because target called exit()
|
||||||
|
|
Loading…
Reference in a new issue