+#if defined(ENABLE_JITCACHE)
+ /* Dealing with ICONST and the JIT cache is tricky because
+ * ICONST generates different code depending on the value of the
+ * number. We therefore go the slightly less optimal way and
+ * generate an entry in the data segment.
+ * For the null constant however we use the plain integer load.
+ */
+ if (iptr->sx.val.anyptr)
+ {
+ disp = dseg_add_unique_address(cd, iptr->sx.val.anyptr);
+
+ jitcache_add_cached_ref(code,
+ (iptr->flags.bits & INS_FLAG_CLASS) ? CRT_CLASSINFO
+ : CRT_STRING,
+ (iptr->flags.bits & INS_FLAG_CLASS) ? iptr->sx.val.c.cls
+ : iptr->sx.val.stringconst,
+ disp);
+
+ M_DSEG_LOAD(d, disp);
+ }
+ else {
+ ICONST(d, (u4) 0);
+ }
+
+#else