Variable excType = m.getNewTemporaryVariable();
// Receive 'exc' and verify that 'exc' is of ruby-type 'Exception'
m.addInstr(new LabelInstr(rescueLabel));
m.addInstr(new ReceiveExceptionInstr(exc));
m.addInstr(new InheritanceSearchConstInstr(excType, new ObjectClass(), "Exception", false));
outputExceptionCheck(m, excType, exc, caughtLabel);
// Fall-through when the exc !== Exception; rethrow 'exc'
m.addInstr(new ThrowExceptionInstr(exc));