99 printf("handler for exception %p at return address %p is at %p (", exceptionOop.rawValue(), returnAddress.rawValue(), handlerInCallerPc.rawValue());
100 decipher(handlerInCallerPc.rawValue());
101 printf(")\n");
102 }
103
104 jumpToExceptionHandlerInCaller(handlerInCallerPc, exception, returnAddress);
105 }
106
107 @Fold
108 static boolean logging(OptionValues options) {
109 return StubOptions.TraceUnwindStub.getValue(options);
110 }
111
112 /**
113 * Determines if either Java assertions are enabled for Graal or if this is a HotSpot build
114 * where the ASSERT mechanism is enabled.
115 */
116 @Fold
117 @SuppressWarnings("all")
118 static boolean assertionsEnabled(@InjectedParameter GraalHotSpotVMConfig config) {
119 return Assertions.ENABLED || cAssertionsEnabled(config);
120 }
121
122 public static final ForeignCallDescriptor EXCEPTION_HANDLER_FOR_RETURN_ADDRESS = newDescriptor(UnwindExceptionToCallerStub.class, "exceptionHandlerForReturnAddress", Word.class, Word.class,
123 Word.class);
124
125 @NodeIntrinsic(value = StubForeignCallNode.class)
126 public static native Word exceptionHandlerForReturnAddress(@ConstantNodeParameter ForeignCallDescriptor exceptionHandlerForReturnAddress, Word thread, Word returnAddress);
127 }
|
99 printf("handler for exception %p at return address %p is at %p (", exceptionOop.rawValue(), returnAddress.rawValue(), handlerInCallerPc.rawValue());
100 decipher(handlerInCallerPc.rawValue());
101 printf(")\n");
102 }
103
104 jumpToExceptionHandlerInCaller(handlerInCallerPc, exception, returnAddress);
105 }
106
107 @Fold
108 static boolean logging(OptionValues options) {
109 return StubOptions.TraceUnwindStub.getValue(options);
110 }
111
112 /**
113 * Determines if either Java assertions are enabled for Graal or if this is a HotSpot build
114 * where the ASSERT mechanism is enabled.
115 */
116 @Fold
117 @SuppressWarnings("all")
118 static boolean assertionsEnabled(@InjectedParameter GraalHotSpotVMConfig config) {
119 return Assertions.assertionsEnabled() || cAssertionsEnabled(config);
120 }
121
122 public static final ForeignCallDescriptor EXCEPTION_HANDLER_FOR_RETURN_ADDRESS = newDescriptor(UnwindExceptionToCallerStub.class, "exceptionHandlerForReturnAddress", Word.class, Word.class,
123 Word.class);
124
125 @NodeIntrinsic(value = StubForeignCallNode.class)
126 public static native Word exceptionHandlerForReturnAddress(@ConstantNodeParameter ForeignCallDescriptor exceptionHandlerForReturnAddress, Word thread, Word returnAddress);
127 }
|