diff options
| author | dgp <dgp@users.sourceforge.net> | 2017-03-17 13:14:14 (GMT) |
|---|---|---|
| committer | dgp <dgp@users.sourceforge.net> | 2017-03-17 13:14:14 (GMT) |
| commit | fb1a2c58ddbae29e3c1cdb08b882d008b829547d (patch) | |
| tree | fbeab2daa748495cacdee97cf19bec914a8e228b /generic/tclExecute.c | |
| parent | 40ee63b6ff6901dea05f4cef62d51bfa188630ed (diff) | |
| parent | 5617ad7c180796ca3ded40478d67504694057ee6 (diff) | |
| download | tcl-fb1a2c58ddbae29e3c1cdb08b882d008b829547d.zip tcl-fb1a2c58ddbae29e3c1cdb08b882d008b829547d.tar.gz tcl-fb1a2c58ddbae29e3c1cdb08b882d008b829547d.tar.bz2 | |
merge trunk
Diffstat (limited to 'generic/tclExecute.c')
| -rw-r--r-- | generic/tclExecute.c | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/generic/tclExecute.c b/generic/tclExecute.c index 968ed0e..3e259b9 100644 --- a/generic/tclExecute.c +++ b/generic/tclExecute.c @@ -7681,6 +7681,39 @@ TEBCresume( * ----------------------------------------------------------------- */ + case INST_CLOCK_READ: + { /* Read the wall clock */ + Tcl_WideInt wval; + Tcl_Time now; + switch(TclGetUInt1AtPtr(pc+1)) { + case 0: /* clicks */ +#ifdef TCL_WIDE_CLICKS + wval = TclpGetWideClicks(); +#else + wval = (Tcl_WideInt) TclpGetClicks(); +#endif + break; + case 1: /* microseconds */ + Tcl_GetTime(&now); + wval = (Tcl_WideInt) now.sec * 1000000 + now.usec; + break; + case 2: /* milliseconds */ + Tcl_GetTime(&now); + wval = (Tcl_WideInt) now.sec * 1000 + now.usec / 1000; + break; + case 3: /* seconds */ + Tcl_GetTime(&now); + wval = (Tcl_WideInt) now.sec; + break; + default: + Tcl_Panic("clockRead instruction with unknown clock#"); + } + /* TclNewWideObj(objResultPtr, wval); doesn't exist */ + objResultPtr = Tcl_NewWideIntObj(wval); + TRACE_WITH_OBJ(("=> "), objResultPtr); + NEXT_INST_F(2, 0, 1); + } + default: Tcl_Panic("TclNRExecuteByteCode: unrecognized opCode %u", *pc); } /* end of switch on opCode */ |
