Permalink
Browse files

[ops] remove cpu_ret op

git-svn-id: https://svn.parrot.org/parrot/trunk@44846 d31e2699-5ff4-0310-a27c-f18f2fbe73fe
  • Loading branch information...
1 parent 495eada commit 142da3ac6fe06f3ce4b5a6d1972ea16f5b057afe @cotto cotto committed Mar 10, 2010
View
@@ -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
@@ -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 */
View
@@ -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.
@@ -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);
Oops, something went wrong. Retry.

0 comments on commit 142da3a

Please sign in to comment.