/*
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* under the terms of the GNU General Public License version 2 only, as
* published by the Free Software Foundation.
*
* This code is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
* version 2 for more details (a copy is included in the LICENSE file that
* accompanied this code).
*
* You should have received a copy of the GNU General Public License version
* 2 along with this work; if not, write to the Free Software Foundation,
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
*
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
* or visit www.oracle.com if you need additional information or have any
* questions.
*
*/
// Inline interpreter functions for sparc
}
// x86 can do unaligned copies but not 64bits at a time
}
// The long operations depend on compiler support for "long long" on x86
}
}
// QQQ what about check and throw...
}
}
}
}
}
}
// CVM did this 0x3f mask, is the really needed??? QQQ
}
}
}
return -op;
}
return ~op;
}
return (op <= 0);
}
return (op >= 0);
}
return (op == 0);
}
}
}
}
}
}
}
}
// Long conversions
}
}
}
// Double Arithmetic
}
// Divide by zero... QQQ
}
}
return -op;
}
}
}
}
// Double Conversions
}
// Float Conversions
}
// Integer Arithmetic
}
}
/* it's possible we could catch this special case implicitly */
}
}
return -op;
}
}
/* it's possible we could catch this special case implicitly */
}
}
}
}
}
}
}
}
}
}
}
}
// The implementations are platform dependent. We have to worry about alignment
// issues on some machines which can change on the same platform depending on
// whether it is an LP64 machine also.
// us alignment headaches. We also know that the worst we have is 32bit alignment
// so thing are not really too bad.
// (Also sparcworks compiler does the right thing for free if we don't use -arch..
// switches. Only gcc gives us a hard time. In LP64 mode I think we have no issue
// with alignment.
#ifdef _GNU_SOURCE
#else
#endif /* _GNU_SOURCE */
#ifdef ALIGN_CONVERTER
class u8_converter {
private:
public:
return tmp.d;
}
tmp.d = d;
}
return tmp.l;
}
tmp.l = l;
}
};
#endif /* ALIGN_CONVERTER */
#endif // CPU_SPARC_VM_BYTECODEINTERPRETER_SPARC_INLINE_HPP