Skip to content

Commit

Permalink
[ops] remove cpu_ret op
Browse files Browse the repository at this point in the history
git-svn-id: https://svn.parrot.org/parrot/trunk@44846 d31e2699-5ff4-0310-a27c-f18f2fbe73fe
  • Loading branch information
Christoph Otto committed Mar 10, 2010
1 parent 495eada commit 142da3a
Show file tree
Hide file tree
Showing 8 changed files with 1,249 additions and 1,276 deletions.
1 change: 1 addition & 0 deletions PBC_COMPAT
Expand Up @@ -27,6 +27,7 @@

# please insert tab separated entries at the top of the list

6.5 2010.03.09 cotto remove cpu_ret op
6.4 2010.03.02 cotto remove prederef__ and reserved
6.3 2010.02.16 whiteknight Add OpLib and Opcode PMCs
6.2 2010.01.31 cotto serialization-related changes to ParrotInterpreter
Expand Down
1 change: 0 additions & 1 deletion include/parrot/oplib.h
Expand Up @@ -47,7 +47,6 @@ typedef op_lib_t *(*oplib_init_f)(PARROT_INTERP, long init);
typedef enum {
CORE_OPS_end, /* halt the runloop */
CORE_OPS_noop, /* do nothing */
CORE_OPS_cpu_ret, /* __asm("ret") */
CORE_OPS_check_events, /* explicit event check */
CORE_OPS_check_events__, /* inserted into op dispatch when an event
got scheduled */
Expand Down
26 changes: 0 additions & 26 deletions src/ops/core.ops
Expand Up @@ -63,12 +63,6 @@ inline op end() :base_core :check_event :flow {
Does nothing other than waste an iota of time and 32 bits of bytecode space.
(Must be op #1, CORE_OPS_noop)

=item B<cpu_ret>()

Emit a cpu return instruction. This is used to return from CGP core
to JIT code. Note: Do B<not> use this opcode. It is for internal use only.
(Must be op #2, CORE_OPS_cpu_ret)

=item B<check_events>()

Check the event queue and run event handlers if there are unhandled events.
Expand Down Expand Up @@ -98,26 +92,6 @@ file.
inline op noop() :base_core {
}

inline op cpu_ret() {
/* We only want to call __asm__("ret") if we're in the JIT core. Otherwise
we want to throw an error. Seriously people: Do not use this opcode
directly in PIR. Ever. It absolutely makes no sense and it doesn't do
anything productive. You've been warned. */
if (PARROT_RUNCORE_JIT_OPS_TEST(interp->run_core)) {
#ifdef __GNUC__
# ifdef I386
__asm__("ret");
# endif
#endif
}
else {
opcode_t * const handler= Parrot_ex_throw_from_op_args(interp,
NULL, EXCEPTION_INVALID_OPERATION,
"cpu_ret: May not use this opcode from PIR source");
goto ADDRESS(handler);
}
}

inline op check_events() :base_core :flow {
opcode_t *next = expr NEXT();
Parrot_cx_check_tasks(interp, interp->scheduler);
Expand Down

0 comments on commit 142da3a

Please sign in to comment.