83 return argumentLocations[index];
84 }
85
86 /**
87 * Gets the amount of stack space (in bytes) required for the stack-based arguments of the call.
88 */
89 public int getStackSize() {
90 return stackSize;
91 }
92
93 /**
94 * Gets the number of locations required for the arguments.
95 */
96 public int getArgumentCount() {
97 return argumentLocations.length;
98 }
99
100 /**
101 * Gets the locations required for the arguments.
102 */
103 public AllocatableValue[] getArguments() {
104 if (argumentLocations.length == 0) {
105 return argumentLocations;
106 }
107 return argumentLocations.clone();
108 }
109
110 @Override
111 public String toString() {
112 StringBuilder sb = new StringBuilder();
113 sb.append("CallingConvention[");
114 String sep = "";
115 for (Value op : argumentLocations) {
116 sb.append(sep).append(op);
117 sep = ", ";
118 }
119 if (!returnLocation.equals(Value.ILLEGAL)) {
120 sb.append(" -> ").append(returnLocation);
121 }
122 sb.append("]");
|
83 return argumentLocations[index];
84 }
85
86 /**
87 * Gets the amount of stack space (in bytes) required for the stack-based arguments of the call.
88 */
89 public int getStackSize() {
90 return stackSize;
91 }
92
93 /**
94 * Gets the number of locations required for the arguments.
95 */
96 public int getArgumentCount() {
97 return argumentLocations.length;
98 }
99
100 /**
101 * Gets the locations required for the arguments.
102 */
103 @SuppressFBWarnings(value = "EI_EXPOSE_REP", justification = "FB false positive")
104 public AllocatableValue[] getArguments() {
105 if (argumentLocations.length == 0) {
106 return argumentLocations;
107 }
108 return argumentLocations.clone();
109 }
110
111 @Override
112 public String toString() {
113 StringBuilder sb = new StringBuilder();
114 sb.append("CallingConvention[");
115 String sep = "";
116 for (Value op : argumentLocations) {
117 sb.append(sep).append(op);
118 sep = ", ";
119 }
120 if (!returnLocation.equals(Value.ILLEGAL)) {
121 sb.append(" -> ").append(returnLocation);
122 }
123 sb.append("]");
|