[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Gambas-bugtracker] Bug #3235: With latest master, gb.jit: panic: unsupported opcode 140D


http://gambaswiki.org/bugtracker/edit?object=BUG.3235&from=L21haW4-

Brian G reported a new bug.

Summary
-------

With latest master, gb.jit: panic: unsupported opcode 140D

Type             : Bug
Priority         : High
Gambas version   : Master
Product          : JIT compiler


Description
-----------

gb.jit: panic: unsupported opcode 140D


//////// mem


extern const void *const _jit_mem_ptr[];

void jit_mem_2(uchar n);
static void jit_mem_2_(uchar o0,intptr_t p0,bool p1,int64_t p2,int64_t p3);
void jit_mem_3(uchar n);
static int jit_mem_3_(GB_VARIANT p0);
void jit_mem_4(uchar n);
static int jit_mem_4_(GB_VARIANT p0);
void jit_mem_5(uchar n);
static void jit_mem_5_(volatile intptr_t p0,volatile int p1);
void jit_mem_6(uchar n);
static void jit_mem_6_(GB_VARIANT p0,intptr_t p1,uchar o0,int p2,bool p3,bool p4,bool p5);
void jit_mem_7(uchar n);
static GB_VARIANT jit_mem_7_(intptr_t p0,uchar o0,int p1,bool p2,bool p3,bool p4);
void jit_mem_8(uchar n);
static intptr_t jit_mem_8_(intptr_t p0,uchar o0,int p1,bool p2);
void jit_mem_9(uchar n);
static intptr_t jit_mem_9_(intptr_t p0,uchar o0,int p1,bool p2);
void jit_mem_10(uchar n);
static intptr_t jit_mem_10_(intptr_t p0);
void jit_mem_11(uchar n);
static void jit_mem_11_(intptr_t p0,GB_OBJECT p1,int p2,uchar o0,int p3,bool p4);
void jit_mem_12(uchar n);
static void jit_mem_12_(intptr_t p0,GB_OBJECT p1,int p2,uchar o0,int p3,bool p4);
void jit_mem_13(uchar n);
static void jit_mem_13_(intptr_t p0,int p1,uchar o0,GB_STRING p2);
void jit_mem_14(uchar n);
static void jit_mem_14_();

// _new

void jit_mem_2(uchar n)
{
  VALUE *sp = *((VALUE **)_jit_mem_ptr[0]);
  jit_mem_2_(OPT(0,4),PARAM_OPT_p(0),PARAM_OPT_b(1),PARAM_OPT_l(2),PARAM_OPT_l(3));
}

static void jit_mem_2_(uchar o0,intptr_t p0,bool p1,int64_t p2,int64_t p3)
{
  VALUE **psp = (VALUE **)_jit_mem_ptr[1];
  VALUE *sp = SP;
  ushort *pc = (ushort *)_jit_mem_ptr[2];
  GB_VALUE_GOSUB *gp = 0;
  bool error = FALSE;

  VALUE *ssp = sp;
  TRY {

__L0:; // mem._new.0
  if (o0 & 1)
    p0 = ((intptr_t)(0)); __L2:; // mem._new.0
  if (o0 & 2)
    p1 = 0; __L4:; // mem._new.0
  if (o0 & 4)
    p2 = ((int64_t)(-1)); __L6:; // mem._new.0
  if (o0 & 8)
    p3 = ((int64_t)(-1)); __L8:; // mem._new.37
  SET_p(OP + 24, p0); __L11:; // mem._new.38
  SET_b(OP + 48, p1); __L14:; // mem._new.39
  SET_l(OP + 32, p2); __L17:; // mem._new.40
  SET_l(OP + 40, p3); __L20:; // mem._new.41

__RETURN:;

  } CATCH {

  sp = _jit_print_catch(psp, sp, ssp, (void *)_jit_mem_ptr[4], (void *)_jit_mem_ptr[3], 0);
  if (__err->info.code == E_ABORT) JIT.propagate();
  error = TRUE;

  } END_TRY

__FINALLY:;
__RELEASE:;
  SP = sp;
  RELEASE_GOSUB();
  if (error) { GB.Propagate(); }
  return;
}


// _SizeOf

void jit_mem_3(uchar n)
{
  VALUE *sp = *((VALUE **)_jit_mem_ptr[5]);
  RETURN_i(jit_mem_3_(PARAM_v(0)));
}

static int jit_mem_3_(GB_VARIANT p0)
{
  int r = 0;
  int l0 = 0;
  int l1 = 0;
  VALUE **psp = (VALUE **)_jit_mem_ptr[6];
  VALUE *sp = SP;
  ushort *pc = (ushort *)_jit_mem_ptr[7];
  GB_VALUE_GOSUB *gp = 0;
  bool error = FALSE;
  int c0;

  BORROW_v(p0);
  VALUE *ssp = sp;
  TRY {

__L0:; // mem._SizeOf.48
  l0 = ({PUSH_v(p0);CALL_SUBR_CODE(2, _jit_mem_ptr[8], 0x6600);POP_i();});
__L4:; // mem._SizeOf.49
  l1 = 1;
__L7:; // mem._SizeOf.51
  c0 = l0;
__L10:; // mem._SizeOf.52
  if (!((({int _a = (int)9; int _b = c0; _a == _b;})))) goto __L28;
__L18:; // mem._SizeOf.53
  l1 = CONV(({PUSH_i(l1);({({PUSH_v(p0);PUSH_UNKNOWN(21);});PUSH_i(1);CALL_SUBR_CODE(23, _jit_mem_ptr[10], 0x3000);});CALL_SUBR_CODE(24, _jit_mem_ptr[11], 0x3000);POP_u();}), u, i, GB_T_INTEGER);
__L26:; // mem._SizeOf.55
  goto __L71;
__L28:; // mem._SizeOf.55
  if (!((({int _a = (int)16; int _b = c0; _a == _b;})))) goto __L45;
__L36:; // mem._SizeOf.56
  l1 = (MATH_ADD_UNSAFE(int, l1, ({SP=sp;jit_mem_4_(p0);})));
__L43:; // mem._SizeOf.58
  goto __L71;
__L45:; // mem._SizeOf.58
  if (!((({int _a = (int)14; int _b = c0; _a == _b;})))) goto __L65;
__L53:; // mem._SizeOf.59
  ({({PUSH_C(CLASS(_jit_mem_ptr[14]));PUSH_UNKNOWN(55);});PUSH_t(CONSTANT_s(_jit_mem_ptr[15], 35));CALL_UNKNOWN(58);POP_V();});
__L60:; // mem._SizeOf.60
  l1 = 0;
__L63:; // mem._SizeOf.62
  goto __L71;
__L65:; // mem._SizeOf.63
  l1 = (MATH_ADD_UNSAFE(int, l1, ({PUSH_i(l0);CALL_SUBR_CODE(68, _jit_mem_ptr[16], 0x6601);POP_i();})));
__L71:; // mem._SizeOf.67
  r = l1;
  LEAVE_TRY();
  goto __RETURN;
__L74:; // mem._SizeOf.68

__RETURN:;

  } CATCH {

  sp = _jit_print_catch(psp, sp, ssp, (void *)_jit_mem_ptr[18], (void *)_jit_mem_ptr[17], 0);
  if (__err->info.code == E_ABORT) JIT.propagate();
  error = TRUE;

  } END_TRY

__FINALLY:;
__RELEASE:;
  SP = sp;
  RELEASE_GOSUB();
  RELEASE_FAST_v(p0);
  if (error) { GB.Propagate(); }
  return r;
}


// ObjectSizeOf

void jit_mem_4(uchar n)
{
  VALUE *sp = *((VALUE **)_jit_mem_ptr[19]);
  RETURN_i(jit_mem_4_(PARAM_v(0)));
}

static int jit_mem_4_(GB_VARIANT p0)
{
  int r = 0;
  const GB_OBJECT null_object = {GB_T_OBJECT};
  GB_OBJECT l0 = null_object;
  int l1 = 0;
  VALUE **psp = (VALUE **)_jit_mem_ptr[20];
  VALUE *sp = SP;
  ushort *pc = (ushort *)_jit_mem_ptr[21];
  GB_VALUE_GOSUB *gp = 0;
  bool error = FALSE;
  void *ro;
  VALUE *tp;

  BORROW_v(p0);
  VALUE *ssp = sp;
  TRY {

__L0:; // mem.ObjectSizeOf.75
  l1 = 0;
__L3:; // mem.ObjectSizeOf.77
  ro = (l0).value;
  l0 = BORROW_o(CONV_o_O(({PUSH_n(NULL);PUSH_i(1043);CALL_SUBR_CODE(7, _jit_mem_ptr[22], 0x7800);POP_o();}), _jit_mem_ptr[23]));
  GB.Unref(&ro);
__L9:; // mem.ObjectSizeOf.78
  tp = EP; EP = sp;
  { VALUE *volatile sp = EP; TRY {
__L12:; // mem.ObjectSizeOf.78
  ({PUSH_o(l0);PUSH_v(p0);PUSH_i(16);CALL_SUBR_CODE(15, _jit_mem_ptr[24], 0x7E00);POP_V();});
__L17:; // mem.ObjectSizeOf.78
  JIT.set_got_error(0);
  } CATCH {
  sp = _jit_end_try(psp, sp);
  } END_TRY }
  EP = tp;
__L18:; // mem.ObjectSizeOf.79
  if (!(({CALL_SUBR(19, _jit_mem_ptr[25]);POP_b();}))) goto __L33;
__L22:; // mem.ObjectSizeOf.80
  ({({PUSH_C(CLASS(_jit_mem_ptr[26]));PUSH_UNKNOWN(24);});({PUSH_t(CONSTANT_s(_jit_mem_ptr[27], 33));({PUSH_C(CLASS(_jit_mem_ptr[28]));PUSH_UNKNOWN(28);});CALL_SUBR_CODE(30, _jit_mem_ptr[29], 0x3C02);});CALL_UNKNOWN(31);POP_V();});
__L33:; // mem.ObjectSizeOf.83
  l1 = ((int)((MATH_ADD_UNSAFE(int64_t, ((int64_t)(l1)), ({PUSH_o(l0);CALL_SUBR_CODE(36, _jit_mem_ptr[30], 0x8401);POP_l();})))));
__L39:; // mem.ObjectSizeOf.84
  ({PUSH_o(l0);CALL_SUBR_CODE(41, _jit_mem_ptr[31], 0x7900);POP_V();});
__L43:; // mem.ObjectSizeOf.86
  r = l1;
  LEAVE_TRY();
  goto __RETURN;
__L46:; // mem.ObjectSizeOf.87

__RETURN:;

  } CATCH {

  sp = _jit_print_catch(psp, sp, ssp, (void *)_jit_mem_ptr[33], (void *)_jit_mem_ptr[32], 0);
  if (__err->info.code == E_ABORT) JIT.propagate();
  error = TRUE;

  } END_TRY

__FINALLY:;
__RELEASE:;
  SP = sp;
  RELEASE_GOSUB();
  RELEASE_FAST_o(l0);
  RELEASE_FAST_v(p0);
  if (error) { GB.Propagate(); }
  return r;
}


// SetType

void jit_mem_5(uchar n)
{
  VALUE *sp = *((VALUE **)_jit_mem_ptr[34]);
  jit_mem_5_(PARAM_p(0),PARAM_i(1));
}

static void jit_mem_5_(volatile intptr_t p0,volatile int p1)
{
  VALUE **psp = (VALUE **)_jit_mem_ptr[35];
  VALUE *sp = SP;
  ushort *pc = (ushort *)_jit_mem_ptr[36];
  GB_VALUE_GOSUB *gp = 0;
  bool error = FALSE;

  VALUE *ssp = sp;
  TRY {

__L0:; // mem.SetType.92
  ({*(uchar *)((MATH_ADD_UNSAFE(intptr_t, GET_p(OP + 24), p0))) = ((uchar)(p1));});
__L7:; // mem.SetType.93

  } CATCH {

  sp = _jit_print_catch(psp, sp, ssp, (void *)_jit_mem_ptr[38], (void *)_jit_mem_ptr[37], 1);
  if (__err->info.code == E_ABORT) JIT.propagate();
  error = TRUE;

  } END_TRY

__FINALLY:;
  if (!error) goto __RELEASE;
__L9:; // mem.SetType.94
  ({({PUSH_C(CLASS(_jit_mem_ptr[39]));PUSH_UNKNOWN(11);});CALL_UNKNOWN(13);POP_V();});
__L15:; // mem.SetType.95

__RETURN:;
__RELEASE:;
  SP = sp;
  RELEASE_GOSUB();
  return;
}


// _put

void jit_mem_6(uchar n)
{
  VALUE *sp = *((VALUE **)_jit_mem_ptr[40]);
  jit_mem_6_(PARAM_v(0),PARAM_p(1),OPT(2,4),PARAM_OPT_i(2),PARAM_OPT_b(3),PARAM_OPT_b(4),PARAM_OPT_b(5));
}

static void jit_mem_6_(GB_VARIANT p0,intptr_t p1,uchar o0,int p2,bool p3,bool p4,bool p5)
{
  const GB_OBJECT null_object = {GB_T_OBJECT};
  GB_OBJECT l0 = null_object;
  intptr_t l1 = 0;
  VALUE **psp = (VALUE **)_jit_mem_ptr[41];
  VALUE *sp = SP;
  ushort *pc = (ushort *)_jit_mem_ptr[42];
  GB_VALUE_GOSUB *gp = 0;
  bool error = FALSE;
  int c0;
  BORROW_v(p0);
  VALUE *ssp = sp;
  TRY {

__L0:; // mem._put.0
  if (o0 & 1)
    p2 = -1; __L2:; // mem._put.0
  if (o0 & 2)
    p3 = 0; __L4:; // mem._put.0
  if (o0 & 4)
    p4 = GET_b(OP + 48); __L6:; // mem._put.0
  if (o0 & 8)
    p5 = 0; __L8:; // mem._put.108
  if (!((({intptr_t _a = p1; intptr_t _b = ((intptr_t)(0)); _a < _b;})))) goto __L23;
__L14:; // mem._put.109
  ({PUSH_i(1);PUSH_t(CONSTANT_s(_jit_mem_ptr[43], 14));PUSH_p(p1);PUSH_t(GET_CHAR(10));CALL_SUBR_CODE(19, _jit_mem_ptr[44], 0x7C04);POP_V();});
__L21:; // mem._put.110
    QUIT(0x0801);
__L23:; // mem._put.113
  l1 = (MATH_ADD_UNSAFE(intptr_t, GET_p(OP + 24), p1));
__L28:; // mem._put.114
  if (!(p5)) goto __L34;
__L32:; // mem._put.114
  p1 = l1;
__L34:; // mem._put.117
  if (p3) goto __L61;
__L38:; // mem._put.118
  if (!((({int _a = p2; int _b = -1; _a == _b;})))) goto __L53;
__L44:; // mem._put.119
  p2 = ({PUSH_v(p0);CALL_SUBR_CODE(46, _jit_mem_ptr[45], 0x6600);POP_i();});
__L48:; // mem._put.120
  ({*(uchar *)(l1) = ((uchar)(p2));});
__L53:; // mem._put.122
  p1 = (MATH_ADD_UNSAFE(intptr_t, p1, ((intptr_t)(1))));
__L57:; // mem._put.123
  l1 = (MATH_ADD_UNSAFE(intptr_t, l1, ((intptr_t)(1))));
__L61:; // mem._put.126
  SET_i(OP + 16, ({PUSH_i(p2);CALL_SUBR_CODE(63, _jit_mem_ptr[46], 0x6601);POP_i();})); __L65:; // mem._put.128
  c0 = p2;
__L68:; // mem._put.130
  if (!((({int _a = (int)5; int _b = c0; _a == _b;})))) goto __L83;
__L76:; // mem._put.131
  ({*(int64_t *)(l1) = CONV(p0, v, l, GB_T_LONG);});
__L81:; // mem._put.133
  goto __L381;
__L83:; // mem._put.133
  if (!((({int _a = (int)4; int _b = c0; _a == _b;})))) goto __L98;
__L91:; // mem._put.134
  ({*(int *)(l1) = CONV(p0, v, i, GB_T_INTEGER);});
__L96:; // mem._put.136
  goto __L381;
__L98:; // mem._put.136
  if (!((({int _a = (int)11; int _b = c0; _a == _b;})))) goto __L113;
__L106:; // mem._put.137
  ({*(intptr_t *)(l1) = CONV(p0, v, p, GB_T_POINTER);});
__L111:; // mem._put.139
  goto __L381;
__L113:; // mem._put.139
  if (!((({int _a = (int)3; int _b = c0; _a == _b;})))) goto __L128;
__L121:; // mem._put.140
  ({*(short *)(l1) = CONV(p0, v, h, GB_T_SHORT);});
__L126:; // mem._put.142
  goto __L381;
__L128:; // mem._put.142
  if (!((({int _a = (int)7; int _b = c0; _a == _b;})))) goto __L143;
__L136:; // mem._put.143
  ({*(double *)(l1) = CONV(p0, v, f, GB_T_FLOAT);});
__L141:; // mem._put.145
  goto __L381;
__L143:; // mem._put.145
  if (!((({int _a = (int)1; int _b = c0; _a == _b;})))) goto __L158;
__L151:; // mem._put.146
  ({*(bool *)(l1) = CONV(p0, v, b, GB_T_BOOLEAN);});
__L156:; // mem._put.148
  goto __L381;
__L158:; // mem._put.148
  if (!((({int _a = (int)2; int _b = c0; _a == _b;})))) goto __L173;
__L166:; // mem._put.149
  ({*(uchar *)(l1) = CONV(p0, v, c, GB_T_BYTE);});
__L171:; // mem._put.151
  goto __L381;
__L173:; // mem._put.151
  if (!((({int _a = (int)8; int _b = c0; _a == _b;})))) goto __L188;
__L181:; // mem._put.152
  ({*(GB_DATE *)(l1) = CONV(p0, v, d, GB_T_DATE);});
__L186:; // mem._put.154
  goto __L381;
__L188:; // mem._put.154
  if (!((({int _a = (int)6; int _b = c0; _a == _b;})))) goto __L203;
__L196:; // mem._put.155
  ({*(float *)(l1) = CONV(p0, v, g, GB_T_SINGLE);});
__L201:; // mem._put.157
  goto __L381;
__L203:; // mem._put.157
  if (!((({int _a = (int)9; int _b = c0; _a == _b;})))) goto __L261;
__L211:; // mem._put.160
  if (p4) goto __L234;
__L215:; // mem._put.161
  p1 = CONV(({PUSH_o(GET_ME(_jit_mem_ptr[57]));PUSH_p(p1);PUSH_i((int)11);PUSH_b((-1));CALL_PUSH_ARRAY(222, 0x0304);POP_u();}), u, p, GB_T_POINTER);
__L224:; // mem._put.162
  p1 = (MATH_ADD_UNSAFE(intptr_t, p1, (MATH_ADD_UNSAFE(intptr_t, (MATH_ADD_UNSAFE(intptr_t, GET_p(OP + 24), ((intptr_t)(({ JIT.load_class((void *)_jit_mem_ptr[62]); GET_i(_jit_mem_ptr[61]); }))))), ((intptr_t)(1))))));
__L234:; // mem._put.166


System information
------------------

[System]
Gambas=3.22.99 5877e93bb (master)
OperatingSystem=Linux
Distribution=Linux Mint 22.3 (Zena)
Kernel=7.0.0-38-generic
Architecture=x86_64
Cores=2
Memory=3912M
Language=en_US.UTF-8
Platform=x11
Desktop=MATE
DesktopResolution=96
DesktopScale=7
WidgetTheme=mint-y-aqua
Font=Ubuntu,10
DarkTheme=False
[Programs]
dpkg=Debian 'dpkg' package management program version 1.22.6 (amd64).
gcc=gcc (Ubuntu 13.3.0-6ubuntu2~24.04.1) 13.3.0
git=
msgmerge=msgmerge (GNU gettext-tools) 0.21
[Libraries]
Cairo=libcairo.so.2.11800.0
Curl=libcurl.so.4.8.0
DBus=libdbus-1.so.3.32.4
GDK2=libgdk-x11-2.0.so.0.2400.33
GDK3=libgdk-3.so.0.2409.32
GStreamer=libgstreamer-1.0.so.0.2402.0
GTK+2=libgtk-x11-2.0.so.0.2400.33
GTK+3=libgtk-3.so.0.2409.32
OpenGL=libGL.so.1.7.0
Poppler=libpoppler.so.134.0.0
QT5=libQt5Core.so.5.15.13
QT6=libQt6Core.so.6.4.2
RSvg=librsvg-2.so.2.50.0
SDL=libSDL2-2.0.so.0.3000.0
SQLite3=libsqlite3.so.0.8.6
[Environment]
CLUTTER_BACKEND=x11
COMPIZ_CONFIG_PROFILE=mint
DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/1000/bus
DESKTOP_SESSION=mate
DISPLAY=:0
EDITOR=editor
GB_GUI=gb.gtk3
GDMSESSION=mate
GDM_LANG=en_US
GIO_LAUNCHED_DESKTOP_FILE=<home>/Desktop/gambas3.desktop
GIO_LAUNCHED_DESKTOP_FILE_PID=2478
GPG_AGENT_INFO=/run/user/1000/gnupg/S.gpg-agent:0:1
GTK3_MODULES=xapp-gtk3-module
GTK_MODULES=gail:atk-bridge
GTK_OVERLAY_SCROLLING=0
HOME=<home>
INSIDE_CAJA_PYTHON=
LANG=en_US.UTF-8
LANGUAGE=en_US.UTF-8
LOGNAME=<user>
MATE_DESKTOP_SESSION_ID=this-is-deprecated
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin
PWD=<home>
QT_ACCESSIBILITY=1
QT_FONT_DPI=96
QT_LOGGING_RULES=*.debug=false
QT_SCALE_FACTOR=1
SESSION_MANAGER=local/<hostname>:@/tmp/.ICE-unix/1054,unix/<hostname>:/tmp/.ICE-unix/1054
SHELL=/bin/bash
SHLVL=0
SSH_AUTH_SOCK=/run/user/1000/keyring/ssh
TZ=:/etc/localtime
USER=<user>
XAUTHORITY=<home>/.Xauthority
XDG_ACTIVATION_TOKEN=caja-1344-<hostname>-gambas3-1_TIME558322
XDG_CONFIG_DIRS=/etc/xdg/xdg-mate:/etc/xdg
XDG_CURRENT_DESKTOP=MATE
XDG_DATA_DIRS=/usr/share/mate:<home>/.local/share/flatpak/exports/share:/var/lib/flatpak/exports/share:/usr/local/share:/usr/share
XDG_GREETER_DATA_DIR=/var/lib/lightdm-data/<user>
XDG_RUNTIME_DIR=/run/user/1000
XDG_SEAT=seat0
XDG_SEAT_PATH=/org/freedesktop/DisplayManager/Seat0
XDG_SESSION_CLASS=user
XDG_SESSION_DESKTOP=mate
XDG_SESSION_ID=c2
XDG_SESSION_PATH=/org/freedesktop/DisplayManager/Session0
XDG_SESSION_TYPE=x11
XDG_VTNR=7



----[ Gambas bugtracker-list is hosted by https://www.hostsharing.net ]----