Mercurial > hg > graal-jvmci-8
comparison src/share/vm/runtime/sharedRuntime.hpp @ 1681:126ea7725993
6953477: Increase portability and flexibility of building Hotspot
Summary: A collection of portability improvements including shared code support for PPC, ARM platforms, software floating point, cross compilation support and improvements in error crash detail.
Reviewed-by: phh, never, coleenp, dholmes
author | bobv |
---|---|
date | Tue, 03 Aug 2010 08:13:38 -0400 |
parents | c18cbe5936b8 |
children | 3e8fbc61cee8 |
comparison
equal
deleted
inserted
replaced
1680:a64438a2b7e8 | 1681:126ea7725993 |
---|---|
76 | 76 |
77 // float and double remainder | 77 // float and double remainder |
78 static jfloat frem(jfloat x, jfloat y); | 78 static jfloat frem(jfloat x, jfloat y); |
79 static jdouble drem(jdouble x, jdouble y); | 79 static jdouble drem(jdouble x, jdouble y); |
80 | 80 |
81 #ifdef __SOFTFP__ | |
82 static jfloat fadd(jfloat x, jfloat y); | |
83 static jfloat fsub(jfloat x, jfloat y); | |
84 static jfloat fmul(jfloat x, jfloat y); | |
85 static jfloat fdiv(jfloat x, jfloat y); | |
86 | |
87 static jdouble dadd(jdouble x, jdouble y); | |
88 static jdouble dsub(jdouble x, jdouble y); | |
89 static jdouble dmul(jdouble x, jdouble y); | |
90 static jdouble ddiv(jdouble x, jdouble y); | |
91 #endif // __SOFTFP__ | |
92 | |
81 // float conversion (needs to set appropriate rounding mode) | 93 // float conversion (needs to set appropriate rounding mode) |
82 static jint f2i (jfloat x); | 94 static jint f2i (jfloat x); |
83 static jlong f2l (jfloat x); | 95 static jlong f2l (jfloat x); |
84 static jint d2i (jdouble x); | 96 static jint d2i (jdouble x); |
85 static jlong d2l (jdouble x); | 97 static jlong d2l (jdouble x); |
86 static jfloat d2f (jdouble x); | 98 static jfloat d2f (jdouble x); |
87 static jfloat l2f (jlong x); | 99 static jfloat l2f (jlong x); |
88 static jdouble l2d (jlong x); | 100 static jdouble l2d (jlong x); |
89 | 101 |
102 #ifdef __SOFTFP__ | |
103 static jfloat i2f (jint x); | |
104 static jdouble i2d (jint x); | |
105 static jdouble f2d (jfloat x); | |
106 #endif // __SOFTFP__ | |
107 | |
90 // double trigonometrics and transcendentals | 108 // double trigonometrics and transcendentals |
91 static jdouble dsin(jdouble x); | 109 static jdouble dsin(jdouble x); |
92 static jdouble dcos(jdouble x); | 110 static jdouble dcos(jdouble x); |
93 static jdouble dtan(jdouble x); | 111 static jdouble dtan(jdouble x); |
94 static jdouble dlog(jdouble x); | 112 static jdouble dlog(jdouble x); |
95 static jdouble dlog10(jdouble x); | 113 static jdouble dlog10(jdouble x); |
96 static jdouble dexp(jdouble x); | 114 static jdouble dexp(jdouble x); |
97 static jdouble dpow(jdouble x, jdouble y); | 115 static jdouble dpow(jdouble x, jdouble y); |
116 | |
117 #if defined(__SOFTFP__) || defined(E500V2) | |
118 static double dabs(double f); | |
119 static double dsqrt(double f); | |
120 #endif | |
121 | |
122 #ifdef __SOFTFP__ | |
123 // C++ compiler generates soft float instructions as well as passing | |
124 // float and double in registers. | |
125 static int fcmpl(float x, float y); | |
126 static int fcmpg(float x, float y); | |
127 static int dcmpl(double x, double y); | |
128 static int dcmpg(double x, double y); | |
129 | |
130 static int unordered_fcmplt(float x, float y); | |
131 static int unordered_dcmplt(double x, double y); | |
132 static int unordered_fcmple(float x, float y); | |
133 static int unordered_dcmple(double x, double y); | |
134 static int unordered_fcmpge(float x, float y); | |
135 static int unordered_dcmpge(double x, double y); | |
136 static int unordered_fcmpgt(float x, float y); | |
137 static int unordered_dcmpgt(double x, double y); | |
138 | |
139 static float fneg(float f); | |
140 static double dneg(double f); | |
141 #endif | |
98 | 142 |
99 // exception handling across interpreter/compiler boundaries | 143 // exception handling across interpreter/compiler boundaries |
100 static address raw_exception_handler_for_return_address(JavaThread* thread, address return_address); | 144 static address raw_exception_handler_for_return_address(JavaThread* thread, address return_address); |
101 static address exception_handler_for_return_address(JavaThread* thread, address return_address); | 145 static address exception_handler_for_return_address(JavaThread* thread, address return_address); |
102 | 146 |
583 // Used to verify that code generated for shared adapters is equivalent | 627 // Used to verify that code generated for shared adapters is equivalent |
584 void save_code(unsigned char* code, int length, int total_args_passed, BasicType* sig_bt); | 628 void save_code(unsigned char* code, int length, int total_args_passed, BasicType* sig_bt); |
585 bool compare_code(unsigned char* code, int length, int total_args_passed, BasicType* sig_bt); | 629 bool compare_code(unsigned char* code, int length, int total_args_passed, BasicType* sig_bt); |
586 #endif | 630 #endif |
587 | 631 |
588 #ifndef PRODUCT | |
589 void print(); | 632 void print(); |
590 #endif /* PRODUCT */ | |
591 }; | 633 }; |
592 | 634 |
593 class AdapterHandlerLibrary: public AllStatic { | 635 class AdapterHandlerLibrary: public AllStatic { |
594 private: | 636 private: |
595 static BufferBlob* _buffer; // the temporary code buffer in CodeCache | 637 static BufferBlob* _buffer; // the temporary code buffer in CodeCache |
607 | 649 |
608 #ifdef HAVE_DTRACE_H | 650 #ifdef HAVE_DTRACE_H |
609 static nmethod* create_dtrace_nmethod (methodHandle method); | 651 static nmethod* create_dtrace_nmethod (methodHandle method); |
610 #endif // HAVE_DTRACE_H | 652 #endif // HAVE_DTRACE_H |
611 | 653 |
654 static void print_handler(CodeBlob* b) { print_handler_on(tty, b); } | |
655 static void print_handler_on(outputStream* st, CodeBlob* b); | |
656 static bool contains(CodeBlob* b); | |
612 #ifndef PRODUCT | 657 #ifndef PRODUCT |
613 static void print_handler(CodeBlob* b); | |
614 static bool contains(CodeBlob* b); | |
615 static void print_statistics(); | 658 static void print_statistics(); |
616 #endif /* PRODUCT */ | 659 #endif /* PRODUCT */ |
617 | 660 |
618 }; | 661 }; |