Check-in [2264af4f54]

Many hyperlinks are disabled.
Use anonymous login to enable hyperlinks.

Overview
Comment:Do check for exception before doing the return value copy (so it does not get copied, check exception first).
Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | trunk
Files: files | file ages | folders
SHA1: 2264af4f542447d6598bf69250138bff1b00b82e
User & Date: stephanie.gawroriski 2019-06-16 18:47:13
Context
2019-06-16
19:15
Add unaligned memory access when decoding operations (since those are the only ones technically able to be unaligned). check-in: 3d58c78266 user: stephanie.gawroriski tags: trunk
18:47
Do check for exception before doing the return value copy (so it does not get copied, check exception first). check-in: 2264af4f54 user: stephanie.gawroriski tags: trunk
18:39
Add exception throwing test. check-in: 0ac3a5fbf4 user: stephanie.gawroriski tags: trunk
Changes
Hide Diffs Unified Diffs Show Whitespace Changes Patch

Changes to runt/libs/tool-classfile/dev/shadowtail/classfile/nncc/NearNativeByteCodeHandler.java.

741
742
743
744
745
746
747










748
749
750
751
752
753
754
			else
			{
				// Invoke instance method
				this.__invokeInstance(__t, mh.outerClass(), mh.name(),
					mh.descriptor(), reglist);
			}
		}










		
		// Read in return value, it is just a copy
		if (__out != null)
		{
			int a = NativeCode.RETURN_REGISTER,
				b = __out.register;
			







>
>
>
>
>
>
>
>
>
>







741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
			else
			{
				// Invoke instance method
				this.__invokeInstance(__t, mh.outerClass(), mh.name(),
					mh.descriptor(), reglist);
			}
		}
		
		// Check if exception occurred
		if (state.canexception)
		{
			codebuilder.addIfNonZero(NativeCode.EXCEPTION_REGISTER,
				this.__labelException());
			
			// We did the exception handling, so do not handle later
			state.canexception = false;
		}
		
		// Read in return value, it is just a copy
		if (__out != null)
		{
			int a = NativeCode.RETURN_REGISTER,
				b = __out.register;