comparison graal/com.oracle.truffle.sl/src/com/oracle/truffle/sl/nodes/call/SLGenericDispatchNode.java @ 13821:b16ec83edc73

Documentation and more refactoring of Simple Language
author Christian Wimmer <christian.wimmer@oracle.com>
date Wed, 29 Jan 2014 20:45:43 -0800
parents 7c418666c6c9
children 64dcb92ee75a
comparison
equal deleted inserted replaced
13820:20e7727588e8 13821:b16ec83edc73
1 /* 1 /*
2 * Copyright (c) 2013, 2013, Oracle and/or its affiliates. All rights reserved. 2 * Copyright (c) 2013, 2014, Oracle and/or its affiliates. All rights reserved.
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4 * 4 *
5 * This code is free software; you can redistribute it and/or modify it 5 * This code is free software; you can redistribute it and/or modify it
6 * under the terms of the GNU General Public License version 2 only, as 6 * under the terms of the GNU General Public License version 2 only, as
7 * published by the Free Software Foundation. 7 * published by the Free Software Foundation.
23 package com.oracle.truffle.sl.nodes.call; 23 package com.oracle.truffle.sl.nodes.call;
24 24
25 import com.oracle.truffle.api.frame.*; 25 import com.oracle.truffle.api.frame.*;
26 import com.oracle.truffle.sl.runtime.*; 26 import com.oracle.truffle.sl.runtime.*;
27 27
28 /**
29 * Slow-path code for a call, used when the polymorphic inline cache exceeded its maximum size. Such
30 * calls are not optimized any further, e.g., no method inlining is performed.
31 */
28 final class SLGenericDispatchNode extends SLAbstractDispatchNode { 32 final class SLGenericDispatchNode extends SLAbstractDispatchNode {
29 33
30 @Override 34 @Override
31 protected Object executeCall(VirtualFrame frame, SLFunction function, SLArguments arguments) { 35 protected Object executeDispatch(VirtualFrame frame, SLFunction function, SLArguments arguments) {
36 /*
37 * SL has a quite simple call lookup: just ask the function for the current call target, and
38 * call it.
39 */
32 return function.getCallTarget().call(frame.pack(), arguments); 40 return function.getCallTarget().call(frame.pack(), arguments);
33 } 41 }
34 } 42 }