esruby 0.0.0 → 0.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/LICENSE +6 -6
- data/bin/esruby +9 -0
- data/lib/esruby.rb +8 -0
- data/resources/mruby/build_config.rb +0 -1
- data/resources/mruby/mrbgems/mruby-print/mrblib/print.rb +1 -1
- data/resources/project_template/app/app.rb +2 -0
- data/resources/project_template/config.rb +35 -0
- data/resources/project_template/www/index.html +17 -0
- metadata +6 -377
- data/resources/mruby/bin/mirb +0 -0
- data/resources/mruby/bin/mrbc +0 -0
- data/resources/mruby/bin/mruby +0 -0
- data/resources/mruby/bin/mruby-strip +0 -0
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/README.md +0 -82
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/mrbgem.rake +0 -63
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/mrblib/regexp_pcre.rb +0 -232
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/mrblib/string_pcre.rb +0 -333
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/132html +0 -313
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/AUTHORS +0 -45
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/CMakeLists.txt +0 -959
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/COPYING +0 -5
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/ChangeLog +0 -4981
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/CheckMan +0 -67
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/CleanTxt +0 -113
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/Detrail +0 -35
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/HACKING +0 -473
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/INSTALL +0 -370
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/LICENCE +0 -92
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/Makefile.am +0 -877
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/Makefile.in +0 -2917
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/NEWS +0 -611
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/NON-AUTOTOOLS-BUILD +0 -639
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/NON-UNIX-USE +0 -7
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/PrepareRelease +0 -253
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/README +0 -935
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/RunGrepTest +0 -551
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/RunTest +0 -1015
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/RunTest.bat +0 -616
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/aclocal.m4 +0 -1230
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/autom4te.cache/output.0 +0 -21280
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/autom4te.cache/output.1 +0 -21280
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/autom4te.cache/requests +0 -273
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/autom4te.cache/traces.0 +0 -2421
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/autom4te.cache/traces.1 +0 -1144
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/cmake/COPYING-CMAKE-SCRIPTS +0 -22
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/cmake/FindEditline.cmake +0 -17
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/cmake/FindPackageHandleStandardArgs.cmake +0 -58
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/cmake/FindReadline.cmake +0 -29
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/compile +0 -343
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/config-cmake.h.in +0 -54
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/config.guess +0 -1552
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/config.h +0 -392
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/config.h.generic +0 -392
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/config.h.in +0 -343
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/config.sub +0 -1804
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/configure +0 -21280
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/configure.ac +0 -1082
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/depcomp +0 -708
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/dftables.c +0 -212
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/doc/html/index.html +0 -180
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/doc/html/pcre-config.html +0 -109
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/doc/html/pcre.html +0 -204
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/doc/html/pcre16.html +0 -383
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/doc/html/pcre_assign_jit_stack.html +0 -76
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/doc/html/pcre_compile.html +0 -108
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/doc/html/pcre_compile2.html +0 -112
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/doc/html/pcre_config.html +0 -91
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/doc/html/pcre_copy_named_substring.html +0 -65
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/doc/html/pcre_copy_substring.html +0 -61
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/doc/html/pcre_dfa_exec.html +0 -128
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/doc/html/pcre_exec.html +0 -110
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/doc/html/pcre_free_study.html +0 -46
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/doc/html/pcre_free_substring.html +0 -46
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/doc/html/pcre_free_substring_list.html +0 -46
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/doc/html/pcre_fullinfo.html +0 -108
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/doc/html/pcre_get_named_substring.html +0 -68
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/doc/html/pcre_get_stringnumber.html +0 -57
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/doc/html/pcre_get_stringtable_entries.html +0 -60
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/doc/html/pcre_get_substring.html +0 -64
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/doc/html/pcre_get_substring_list.html +0 -61
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/doc/html/pcre_jit_exec.html +0 -108
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/doc/html/pcre_jit_stack_alloc.html +0 -55
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/doc/html/pcre_jit_stack_free.html +0 -48
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/doc/html/pcre_maketables.html +0 -48
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/doc/html/pcre_pattern_to_host_byte_order.html +0 -58
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/doc/html/pcre_refcount.html +0 -51
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/doc/html/pcre_study.html +0 -68
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/doc/html/pcre_utf16_to_host_byte_order.html +0 -57
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/doc/html/pcre_version.html +0 -46
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/doc/html/pcreapi.html +0 -2786
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/doc/html/pcrebuild.html +0 -517
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/doc/html/pcrecallout.html +0 -243
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/doc/html/pcrecompat.html +0 -216
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/doc/html/pcrecpp.html +0 -368
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/doc/html/pcredemo.html +0 -426
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/doc/html/pcregrep.html +0 -757
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/doc/html/pcrejit.html +0 -458
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/doc/html/pcrelimits.html +0 -86
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/doc/html/pcrematching.html +0 -233
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/doc/html/pcrepartial.html +0 -474
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/doc/html/pcrepattern.html +0 -2953
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/doc/html/pcreperform.html +0 -195
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/doc/html/pcreposix.html +0 -292
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/doc/html/pcreprecompile.html +0 -158
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/doc/html/pcresample.html +0 -110
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/doc/html/pcrestack.html +0 -225
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/doc/html/pcresyntax.html +0 -521
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/doc/html/pcretest.html +0 -1082
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/doc/html/pcreunicode.html +0 -270
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/doc/index.html.src +0 -180
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/doc/pcre-config.1 +0 -92
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/doc/pcre-config.txt +0 -86
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/doc/pcre.3 +0 -202
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/doc/pcre.txt +0 -9909
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/doc/pcre16.3 +0 -390
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/doc/pcre32.3 +0 -389
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/doc/pcre_assign_jit_stack.3 +0 -61
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/doc/pcre_compile.3 +0 -98
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/doc/pcre_compile2.3 +0 -106
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/doc/pcre_config.3 +0 -76
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/doc/pcre_copy_named_substring.3 +0 -59
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/doc/pcre_copy_substring.3 +0 -52
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/doc/pcre_dfa_exec.3 +0 -125
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/doc/pcre_exec.3 +0 -103
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/doc/pcre_free_study.3 +0 -31
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/doc/pcre_free_substring.3 +0 -31
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/doc/pcre_free_substring_list.3 +0 -31
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/doc/pcre_fullinfo.3 +0 -95
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/doc/pcre_get_named_substring.3 +0 -62
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/doc/pcre_get_stringnumber.3 +0 -45
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/doc/pcre_get_stringtable_entries.3 +0 -48
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/doc/pcre_get_substring.3 +0 -55
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/doc/pcre_get_substring_list.3 +0 -49
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/doc/pcre_jit_exec.3 +0 -104
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/doc/pcre_jit_stack_alloc.3 +0 -45
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/doc/pcre_jit_stack_free.3 +0 -35
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/doc/pcre_maketables.3 +0 -33
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/doc/pcre_pattern_to_host_byte_order.3 +0 -46
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/doc/pcre_refcount.3 +0 -36
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/doc/pcre_study.3 +0 -56
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/doc/pcre_utf16_to_host_byte_order.3 +0 -46
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/doc/pcre_utf32_to_host_byte_order.3 +0 -46
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/doc/pcre_version.3 +0 -31
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/doc/pcreapi.3 +0 -2823
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/doc/pcrebuild.3 +0 -520
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/doc/pcrecallout.3 +0 -214
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/doc/pcrecompat.3 +0 -185
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/doc/pcrecpp.3 +0 -348
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/doc/pcregrep.1 +0 -679
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/doc/pcregrep.txt +0 -740
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/doc/pcrejit.3 +0 -437
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/doc/pcrelimits.3 +0 -67
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/doc/pcrematching.3 +0 -206
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/doc/pcrepartial.3 +0 -445
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/doc/pcrepattern.3 +0 -2983
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/doc/pcreperform.3 +0 -177
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/doc/pcreposix.3 +0 -270
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/doc/pcreprecompile.3 +0 -151
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/doc/pcresample.3 +0 -99
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/doc/pcrestack.3 +0 -215
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/doc/pcresyntax.3 +0 -496
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/doc/pcretest.1 +0 -1079
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/doc/pcretest.txt +0 -1012
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/doc/pcreunicode.3 +0 -255
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/doc/perltest.txt +0 -42
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/install-sh +0 -527
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/libpcre.pc.in +0 -12
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/libpcre16.pc.in +0 -12
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/libpcre32.pc.in +0 -12
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/libpcrecpp.pc.in +0 -12
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/libpcreposix.pc.in +0 -13
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/ltmain.sh +0 -9636
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/m4/ax_pthread.m4 +0 -309
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/m4/libtool.m4 +0 -7844
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/m4/ltoptions.m4 +0 -369
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/m4/ltsugar.m4 +0 -123
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/m4/ltversion.m4 +0 -23
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/m4/lt~obsolete.m4 +0 -98
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/m4/pcre_visibility.m4 +0 -89
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/makevp.bat +0 -66
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/makevp_c.txt +0 -20
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/makevp_l.txt +0 -20
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/missing +0 -331
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/pcre-config.in +0 -133
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/pcre.h +0 -653
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/pcre.h.generic +0 -653
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/pcre.h.in +0 -653
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/pcre16_byte_order.c +0 -45
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/pcre16_chartables.c +0 -45
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/pcre16_compile.c +0 -45
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/pcre16_config.c +0 -45
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/pcre16_dfa_exec.c +0 -45
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/pcre16_exec.c +0 -45
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/pcre16_fullinfo.c +0 -45
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/pcre16_get.c +0 -45
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/pcre16_globals.c +0 -45
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/pcre16_jit_compile.c +0 -45
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/pcre16_maketables.c +0 -45
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/pcre16_newline.c +0 -45
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/pcre16_ord2utf16.c +0 -90
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/pcre16_printint.c +0 -45
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/pcre16_refcount.c +0 -45
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/pcre16_string_utils.c +0 -45
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/pcre16_study.c +0 -45
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/pcre16_tables.c +0 -45
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/pcre16_ucd.c +0 -45
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/pcre16_utf16_utils.c +0 -130
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/pcre16_valid_utf16.c +0 -156
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/pcre16_version.c +0 -45
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/pcre16_xclass.c +0 -45
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/pcre32_byte_order.c +0 -45
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/pcre32_chartables.c +0 -45
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/pcre32_compile.c +0 -45
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/pcre32_config.c +0 -45
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/pcre32_dfa_exec.c +0 -45
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/pcre32_exec.c +0 -45
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/pcre32_fullinfo.c +0 -45
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/pcre32_get.c +0 -45
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/pcre32_globals.c +0 -45
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/pcre32_jit_compile.c +0 -45
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/pcre32_maketables.c +0 -45
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/pcre32_newline.c +0 -45
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/pcre32_ord2utf32.c +0 -82
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/pcre32_printint.c +0 -45
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/pcre32_refcount.c +0 -45
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/pcre32_string_utils.c +0 -45
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/pcre32_study.c +0 -45
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/pcre32_tables.c +0 -45
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/pcre32_ucd.c +0 -45
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/pcre32_utf32_utils.c +0 -141
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/pcre32_valid_utf32.c +0 -131
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/pcre32_version.c +0 -45
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/pcre32_xclass.c +0 -45
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/pcre_byte_order.c +0 -318
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/pcre_chartables.c +0 -198
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/pcre_chartables.c.dist +0 -198
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/pcre_compile.c +0 -8386
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/pcre_config.c +0 -186
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/pcre_dfa_exec.c +0 -3582
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/pcre_exec.c +0 -7049
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/pcre_fullinfo.c +0 -231
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/pcre_get.c +0 -662
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/pcre_globals.c +0 -84
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/pcre_internal.h +0 -2744
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/pcre_jit_compile.c +0 -8560
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/pcre_jit_test.c +0 -1614
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/pcre_maketables.c +0 -151
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/pcre_newline.c +0 -210
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/pcre_ord2utf8.c +0 -94
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/pcre_printint.c +0 -766
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/pcre_refcount.c +0 -92
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/pcre_scanner.cc +0 -199
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/pcre_scanner.h +0 -172
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/pcre_scanner_unittest.cc +0 -159
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/pcre_string_utils.c +0 -211
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/pcre_stringpiece.cc +0 -43
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/pcre_stringpiece.h.in +0 -179
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/pcre_stringpiece_unittest.cc +0 -150
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/pcre_study.c +0 -1562
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/pcre_tables.c +0 -655
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/pcre_ucd.c +0 -3298
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/pcre_valid_utf8.c +0 -312
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/pcre_version.c +0 -98
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/pcre_xclass.c +0 -198
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/pcrecpp.cc +0 -922
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/pcrecpp.h +0 -710
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/pcrecpp_internal.h +0 -71
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/pcrecpp_unittest.cc +0 -1291
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/pcrecpparg.h.in +0 -174
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/pcredemo.c +0 -406
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/pcregexp.pas +0 -845
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/pcregrep.c +0 -3180
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/pcreposix.c +0 -419
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/pcreposix.h +0 -146
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/pcretest.c +0 -5488
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/perltest.pl +0 -237
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/sljit/sljitConfig.h +0 -110
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/sljit/sljitConfigInternal.h +0 -484
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/sljit/sljitExecAllocator.c +0 -289
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/sljit/sljitLir.c +0 -1766
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/sljit/sljitLir.h +0 -985
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/sljit/sljitNativeARM_Thumb2.c +0 -2008
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/sljit/sljitNativeARM_v5.c +0 -2515
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/sljit/sljitNativeMIPS_32.c +0 -404
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/sljit/sljitNativeMIPS_common.c +0 -1881
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/sljit/sljitNativePPC_32.c +0 -269
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/sljit/sljitNativePPC_64.c +0 -421
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/sljit/sljitNativePPC_common.c +0 -2014
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/sljit/sljitNativeSPARC_32.c +0 -164
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/sljit/sljitNativeSPARC_common.c +0 -1348
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/sljit/sljitNativeX86_32.c +0 -547
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/sljit/sljitNativeX86_64.c +0 -810
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/sljit/sljitNativeX86_common.c +0 -2836
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/sljit/sljitUtils.c +0 -332
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/testdata/grepbinary +0 -0
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/testdata/grepfilelist +0 -3
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/testdata/grepinput +0 -611
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/testdata/grepinput3 +0 -15
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/testdata/grepinput8 +0 -11
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/testdata/grepinputv +0 -4
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/testdata/grepinputx +0 -43
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/testdata/greplist +0 -7
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/testdata/grepoutput +0 -707
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/testdata/grepoutput8 +0 -12
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/testdata/grepoutputN +0 -17
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/testdata/greppatN4 +0 -2
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/testdata/saved16 +0 -0
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/testdata/saved16BE-1 +0 -0
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/testdata/saved16BE-2 +0 -0
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/testdata/saved16LE-1 +0 -0
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/testdata/saved16LE-2 +0 -0
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/testdata/saved32 +0 -0
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/testdata/saved32BE-1 +0 -0
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/testdata/saved32BE-2 +0 -0
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/testdata/saved32LE-1 +0 -0
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/testdata/saved32LE-2 +0 -0
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/testdata/saved8 +0 -0
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/testdata/testinput1 +0 -5306
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/testdata/testinput10 +0 -1337
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/testdata/testinput11 +0 -135
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/testdata/testinput12 +0 -89
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/testdata/testinput13 +0 -9
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/testdata/testinput14 +0 -329
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/testdata/testinput15 +0 -430
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/testdata/testinput16 +0 -35
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/testdata/testinput17 +0 -296
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/testdata/testinput18 +0 -296
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/testdata/testinput19 +0 -22
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/testdata/testinput2 +0 -3813
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/testdata/testinput20 +0 -19
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/testdata/testinput21 +0 -16
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/testdata/testinput22 +0 -13
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/testdata/testinput23 +0 -16
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/testdata/testinput24 +0 -77
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/testdata/testinput25 +0 -32
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/testdata/testinput26 +0 -80
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/testdata/testinput3 +0 -95
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/testdata/testinput4 +0 -624
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/testdata/testinput5 +0 -772
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/testdata/testinput6 +0 -1319
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/testdata/testinput7 +0 -672
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/testdata/testinput8 +0 -4801
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/testdata/testinput9 +0 -717
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/testdata/testinputEBC +0 -121
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/testdata/testoutput1 +0 -8798
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/testdata/testoutput10 +0 -2726
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/testdata/testoutput11-16 +0 -713
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/testdata/testoutput11-32 +0 -713
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/testdata/testoutput11-8 +0 -713
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/testdata/testoutput12 +0 -181
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/testdata/testoutput13 +0 -21
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/testdata/testoutput14 +0 -476
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/testdata/testoutput15 +0 -1269
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/testdata/testoutput16 +0 -121
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/testdata/testoutput17 +0 -505
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/testdata/testoutput18-16 +0 -1022
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/testdata/testoutput18-32 +0 -1019
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/testdata/testoutput19 +0 -88
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/testdata/testoutput2 +0 -12484
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/testdata/testoutput20 +0 -27
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/testdata/testoutput21-16 +0 -90
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/testdata/testoutput21-32 +0 -90
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/testdata/testoutput22-16 +0 -71
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/testdata/testoutput22-32 +0 -71
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/testdata/testoutput23 +0 -42
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/testdata/testoutput24 +0 -145
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/testdata/testoutput25 +0 -79
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/testdata/testoutput26 +0 -148
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/testdata/testoutput3 +0 -169
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/testdata/testoutput4 +0 -1094
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/testdata/testoutput5 +0 -1849
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/testdata/testoutput6 +0 -2137
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/testdata/testoutput7 +0 -1473
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/testdata/testoutput8 +0 -8019
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/testdata/testoutput9 +0 -1371
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/testdata/testoutputEBC +0 -182
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/testdata/wintestinput3 +0 -91
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/testdata/wintestoutput3 +0 -166
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/pcre/ucp.h +0 -197
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/run_test.rb +0 -23
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/src/mruby_regexp_pcre.c +0 -364
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/test/matchdata.rb +0 -94
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/test/regexp.rb +0 -264
- data/resources/mruby/build/mrbgems/mruby-regexp-pcre/test/string.rb +0 -201
|
@@ -1,269 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* Stack-less Just-In-Time compiler
|
|
3
|
-
*
|
|
4
|
-
* Copyright 2009-2012 Zoltan Herczeg (hzmester@freemail.hu). All rights reserved.
|
|
5
|
-
*
|
|
6
|
-
* Redistribution and use in source and binary forms, with or without modification, are
|
|
7
|
-
* permitted provided that the following conditions are met:
|
|
8
|
-
*
|
|
9
|
-
* 1. Redistributions of source code must retain the above copyright notice, this list of
|
|
10
|
-
* conditions and the following disclaimer.
|
|
11
|
-
*
|
|
12
|
-
* 2. Redistributions in binary form must reproduce the above copyright notice, this list
|
|
13
|
-
* of conditions and the following disclaimer in the documentation and/or other materials
|
|
14
|
-
* provided with the distribution.
|
|
15
|
-
*
|
|
16
|
-
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDER(S) AND CONTRIBUTORS ``AS IS'' AND ANY
|
|
17
|
-
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
|
|
18
|
-
* OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT
|
|
19
|
-
* SHALL THE COPYRIGHT HOLDER(S) OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
|
|
20
|
-
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
|
|
21
|
-
* TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
|
|
22
|
-
* BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
|
23
|
-
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
|
|
24
|
-
* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
25
|
-
*/
|
|
26
|
-
|
|
27
|
-
/* ppc 32-bit arch dependent functions. */
|
|
28
|
-
|
|
29
|
-
static sljit_si load_immediate(struct sljit_compiler *compiler, sljit_si reg, sljit_sw imm)
|
|
30
|
-
{
|
|
31
|
-
if (imm <= SIMM_MAX && imm >= SIMM_MIN)
|
|
32
|
-
return push_inst(compiler, ADDI | D(reg) | A(0) | IMM(imm));
|
|
33
|
-
|
|
34
|
-
if (!(imm & ~0xffff))
|
|
35
|
-
return push_inst(compiler, ORI | S(ZERO_REG) | A(reg) | IMM(imm));
|
|
36
|
-
|
|
37
|
-
FAIL_IF(push_inst(compiler, ADDIS | D(reg) | A(0) | IMM(imm >> 16)));
|
|
38
|
-
return (imm & 0xffff) ? push_inst(compiler, ORI | S(reg) | A(reg) | IMM(imm)) : SLJIT_SUCCESS;
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
#define INS_CLEAR_LEFT(dst, src, from) \
|
|
42
|
-
(RLWINM | S(src) | A(dst) | ((from) << 6) | (31 << 1))
|
|
43
|
-
|
|
44
|
-
static SLJIT_INLINE sljit_si emit_single_op(struct sljit_compiler *compiler, sljit_si op, sljit_si flags,
|
|
45
|
-
sljit_si dst, sljit_si src1, sljit_si src2)
|
|
46
|
-
{
|
|
47
|
-
switch (op) {
|
|
48
|
-
case SLJIT_MOV:
|
|
49
|
-
case SLJIT_MOV_UI:
|
|
50
|
-
case SLJIT_MOV_SI:
|
|
51
|
-
case SLJIT_MOV_P:
|
|
52
|
-
SLJIT_ASSERT(src1 == TMP_REG1);
|
|
53
|
-
if (dst != src2)
|
|
54
|
-
return push_inst(compiler, OR | S(src2) | A(dst) | B(src2));
|
|
55
|
-
return SLJIT_SUCCESS;
|
|
56
|
-
|
|
57
|
-
case SLJIT_MOV_UB:
|
|
58
|
-
case SLJIT_MOV_SB:
|
|
59
|
-
SLJIT_ASSERT(src1 == TMP_REG1);
|
|
60
|
-
if ((flags & (REG_DEST | REG2_SOURCE)) == (REG_DEST | REG2_SOURCE)) {
|
|
61
|
-
if (op == SLJIT_MOV_SB)
|
|
62
|
-
return push_inst(compiler, EXTSB | S(src2) | A(dst));
|
|
63
|
-
return push_inst(compiler, INS_CLEAR_LEFT(dst, src2, 24));
|
|
64
|
-
}
|
|
65
|
-
else if ((flags & REG_DEST) && op == SLJIT_MOV_SB)
|
|
66
|
-
return push_inst(compiler, EXTSB | S(src2) | A(dst));
|
|
67
|
-
else {
|
|
68
|
-
SLJIT_ASSERT(dst == src2);
|
|
69
|
-
}
|
|
70
|
-
return SLJIT_SUCCESS;
|
|
71
|
-
|
|
72
|
-
case SLJIT_MOV_UH:
|
|
73
|
-
case SLJIT_MOV_SH:
|
|
74
|
-
SLJIT_ASSERT(src1 == TMP_REG1);
|
|
75
|
-
if ((flags & (REG_DEST | REG2_SOURCE)) == (REG_DEST | REG2_SOURCE)) {
|
|
76
|
-
if (op == SLJIT_MOV_SH)
|
|
77
|
-
return push_inst(compiler, EXTSH | S(src2) | A(dst));
|
|
78
|
-
return push_inst(compiler, INS_CLEAR_LEFT(dst, src2, 16));
|
|
79
|
-
}
|
|
80
|
-
else {
|
|
81
|
-
SLJIT_ASSERT(dst == src2);
|
|
82
|
-
}
|
|
83
|
-
return SLJIT_SUCCESS;
|
|
84
|
-
|
|
85
|
-
case SLJIT_NOT:
|
|
86
|
-
SLJIT_ASSERT(src1 == TMP_REG1);
|
|
87
|
-
return push_inst(compiler, NOR | RC(flags) | S(src2) | A(dst) | B(src2));
|
|
88
|
-
|
|
89
|
-
case SLJIT_NEG:
|
|
90
|
-
SLJIT_ASSERT(src1 == TMP_REG1);
|
|
91
|
-
return push_inst(compiler, NEG | OERC(flags) | D(dst) | A(src2));
|
|
92
|
-
|
|
93
|
-
case SLJIT_CLZ:
|
|
94
|
-
SLJIT_ASSERT(src1 == TMP_REG1);
|
|
95
|
-
return push_inst(compiler, CNTLZW | RC(flags) | S(src2) | A(dst));
|
|
96
|
-
|
|
97
|
-
case SLJIT_ADD:
|
|
98
|
-
if (flags & ALT_FORM1) {
|
|
99
|
-
/* Flags does not set: BIN_IMM_EXTS unnecessary. */
|
|
100
|
-
SLJIT_ASSERT(src2 == TMP_REG2);
|
|
101
|
-
return push_inst(compiler, ADDI | D(dst) | A(src1) | compiler->imm);
|
|
102
|
-
}
|
|
103
|
-
if (flags & ALT_FORM2) {
|
|
104
|
-
/* Flags does not set: BIN_IMM_EXTS unnecessary. */
|
|
105
|
-
SLJIT_ASSERT(src2 == TMP_REG2);
|
|
106
|
-
return push_inst(compiler, ADDIS | D(dst) | A(src1) | compiler->imm);
|
|
107
|
-
}
|
|
108
|
-
if (flags & ALT_FORM3) {
|
|
109
|
-
SLJIT_ASSERT(src2 == TMP_REG2);
|
|
110
|
-
return push_inst(compiler, ADDIC | D(dst) | A(src1) | compiler->imm);
|
|
111
|
-
}
|
|
112
|
-
if (flags & ALT_FORM4) {
|
|
113
|
-
/* Flags does not set: BIN_IMM_EXTS unnecessary. */
|
|
114
|
-
FAIL_IF(push_inst(compiler, ADDI | D(dst) | A(src1) | (compiler->imm & 0xffff)));
|
|
115
|
-
return push_inst(compiler, ADDIS | D(dst) | A(dst) | (((compiler->imm >> 16) & 0xffff) + ((compiler->imm >> 15) & 0x1)));
|
|
116
|
-
}
|
|
117
|
-
if (!(flags & ALT_SET_FLAGS))
|
|
118
|
-
return push_inst(compiler, ADD | D(dst) | A(src1) | B(src2));
|
|
119
|
-
return push_inst(compiler, ADDC | OERC(ALT_SET_FLAGS) | D(dst) | A(src1) | B(src2));
|
|
120
|
-
|
|
121
|
-
case SLJIT_ADDC:
|
|
122
|
-
if (flags & ALT_FORM1) {
|
|
123
|
-
FAIL_IF(push_inst(compiler, MFXER | D(0)));
|
|
124
|
-
FAIL_IF(push_inst(compiler, ADDE | D(dst) | A(src1) | B(src2)));
|
|
125
|
-
return push_inst(compiler, MTXER | S(0));
|
|
126
|
-
}
|
|
127
|
-
return push_inst(compiler, ADDE | D(dst) | A(src1) | B(src2));
|
|
128
|
-
|
|
129
|
-
case SLJIT_SUB:
|
|
130
|
-
if (flags & ALT_FORM1) {
|
|
131
|
-
/* Flags does not set: BIN_IMM_EXTS unnecessary. */
|
|
132
|
-
SLJIT_ASSERT(src2 == TMP_REG2);
|
|
133
|
-
return push_inst(compiler, SUBFIC | D(dst) | A(src1) | compiler->imm);
|
|
134
|
-
}
|
|
135
|
-
if (flags & (ALT_FORM2 | ALT_FORM3)) {
|
|
136
|
-
SLJIT_ASSERT(src2 == TMP_REG2);
|
|
137
|
-
if (flags & ALT_FORM2)
|
|
138
|
-
FAIL_IF(push_inst(compiler, CMPI | CRD(0) | A(src1) | compiler->imm));
|
|
139
|
-
if (flags & ALT_FORM3)
|
|
140
|
-
return push_inst(compiler, CMPLI | CRD(4) | A(src1) | compiler->imm);
|
|
141
|
-
return SLJIT_SUCCESS;
|
|
142
|
-
}
|
|
143
|
-
if (flags & (ALT_FORM4 | ALT_FORM5)) {
|
|
144
|
-
if (flags & ALT_FORM4)
|
|
145
|
-
FAIL_IF(push_inst(compiler, CMPL | CRD(4) | A(src1) | B(src2)));
|
|
146
|
-
if (flags & ALT_FORM5)
|
|
147
|
-
FAIL_IF(push_inst(compiler, CMP | CRD(0) | A(src1) | B(src2)));
|
|
148
|
-
return SLJIT_SUCCESS;
|
|
149
|
-
}
|
|
150
|
-
if (!(flags & ALT_SET_FLAGS))
|
|
151
|
-
return push_inst(compiler, SUBF | D(dst) | A(src2) | B(src1));
|
|
152
|
-
if (flags & ALT_FORM6)
|
|
153
|
-
FAIL_IF(push_inst(compiler, CMPL | CRD(4) | A(src1) | B(src2)));
|
|
154
|
-
return push_inst(compiler, SUBFC | OERC(ALT_SET_FLAGS) | D(dst) | A(src2) | B(src1));
|
|
155
|
-
|
|
156
|
-
case SLJIT_SUBC:
|
|
157
|
-
if (flags & ALT_FORM1) {
|
|
158
|
-
FAIL_IF(push_inst(compiler, MFXER | D(0)));
|
|
159
|
-
FAIL_IF(push_inst(compiler, SUBFE | D(dst) | A(src2) | B(src1)));
|
|
160
|
-
return push_inst(compiler, MTXER | S(0));
|
|
161
|
-
}
|
|
162
|
-
return push_inst(compiler, SUBFE | D(dst) | A(src2) | B(src1));
|
|
163
|
-
|
|
164
|
-
case SLJIT_MUL:
|
|
165
|
-
if (flags & ALT_FORM1) {
|
|
166
|
-
SLJIT_ASSERT(src2 == TMP_REG2);
|
|
167
|
-
return push_inst(compiler, MULLI | D(dst) | A(src1) | compiler->imm);
|
|
168
|
-
}
|
|
169
|
-
return push_inst(compiler, MULLW | OERC(flags) | D(dst) | A(src2) | B(src1));
|
|
170
|
-
|
|
171
|
-
case SLJIT_AND:
|
|
172
|
-
if (flags & ALT_FORM1) {
|
|
173
|
-
SLJIT_ASSERT(src2 == TMP_REG2);
|
|
174
|
-
return push_inst(compiler, ANDI | S(src1) | A(dst) | compiler->imm);
|
|
175
|
-
}
|
|
176
|
-
if (flags & ALT_FORM2) {
|
|
177
|
-
SLJIT_ASSERT(src2 == TMP_REG2);
|
|
178
|
-
return push_inst(compiler, ANDIS | S(src1) | A(dst) | compiler->imm);
|
|
179
|
-
}
|
|
180
|
-
return push_inst(compiler, AND | RC(flags) | S(src1) | A(dst) | B(src2));
|
|
181
|
-
|
|
182
|
-
case SLJIT_OR:
|
|
183
|
-
if (flags & ALT_FORM1) {
|
|
184
|
-
SLJIT_ASSERT(src2 == TMP_REG2);
|
|
185
|
-
return push_inst(compiler, ORI | S(src1) | A(dst) | compiler->imm);
|
|
186
|
-
}
|
|
187
|
-
if (flags & ALT_FORM2) {
|
|
188
|
-
SLJIT_ASSERT(src2 == TMP_REG2);
|
|
189
|
-
return push_inst(compiler, ORIS | S(src1) | A(dst) | compiler->imm);
|
|
190
|
-
}
|
|
191
|
-
if (flags & ALT_FORM3) {
|
|
192
|
-
SLJIT_ASSERT(src2 == TMP_REG2);
|
|
193
|
-
FAIL_IF(push_inst(compiler, ORI | S(src1) | A(dst) | IMM(compiler->imm)));
|
|
194
|
-
return push_inst(compiler, ORIS | S(dst) | A(dst) | IMM(compiler->imm >> 16));
|
|
195
|
-
}
|
|
196
|
-
return push_inst(compiler, OR | RC(flags) | S(src1) | A(dst) | B(src2));
|
|
197
|
-
|
|
198
|
-
case SLJIT_XOR:
|
|
199
|
-
if (flags & ALT_FORM1) {
|
|
200
|
-
SLJIT_ASSERT(src2 == TMP_REG2);
|
|
201
|
-
return push_inst(compiler, XORI | S(src1) | A(dst) | compiler->imm);
|
|
202
|
-
}
|
|
203
|
-
if (flags & ALT_FORM2) {
|
|
204
|
-
SLJIT_ASSERT(src2 == TMP_REG2);
|
|
205
|
-
return push_inst(compiler, XORIS | S(src1) | A(dst) | compiler->imm);
|
|
206
|
-
}
|
|
207
|
-
if (flags & ALT_FORM3) {
|
|
208
|
-
SLJIT_ASSERT(src2 == TMP_REG2);
|
|
209
|
-
FAIL_IF(push_inst(compiler, XORI | S(src1) | A(dst) | IMM(compiler->imm)));
|
|
210
|
-
return push_inst(compiler, XORIS | S(dst) | A(dst) | IMM(compiler->imm >> 16));
|
|
211
|
-
}
|
|
212
|
-
return push_inst(compiler, XOR | RC(flags) | S(src1) | A(dst) | B(src2));
|
|
213
|
-
|
|
214
|
-
case SLJIT_SHL:
|
|
215
|
-
if (flags & ALT_FORM1) {
|
|
216
|
-
SLJIT_ASSERT(src2 == TMP_REG2);
|
|
217
|
-
compiler->imm &= 0x1f;
|
|
218
|
-
return push_inst(compiler, RLWINM | RC(flags) | S(src1) | A(dst) | (compiler->imm << 11) | ((31 - compiler->imm) << 1));
|
|
219
|
-
}
|
|
220
|
-
return push_inst(compiler, SLW | RC(flags) | S(src1) | A(dst) | B(src2));
|
|
221
|
-
|
|
222
|
-
case SLJIT_LSHR:
|
|
223
|
-
if (flags & ALT_FORM1) {
|
|
224
|
-
SLJIT_ASSERT(src2 == TMP_REG2);
|
|
225
|
-
compiler->imm &= 0x1f;
|
|
226
|
-
return push_inst(compiler, RLWINM | RC(flags) | S(src1) | A(dst) | (((32 - compiler->imm) & 0x1f) << 11) | (compiler->imm << 6) | (31 << 1));
|
|
227
|
-
}
|
|
228
|
-
return push_inst(compiler, SRW | RC(flags) | S(src1) | A(dst) | B(src2));
|
|
229
|
-
|
|
230
|
-
case SLJIT_ASHR:
|
|
231
|
-
if (flags & ALT_FORM3)
|
|
232
|
-
FAIL_IF(push_inst(compiler, MFXER | D(0)));
|
|
233
|
-
if (flags & ALT_FORM1) {
|
|
234
|
-
SLJIT_ASSERT(src2 == TMP_REG2);
|
|
235
|
-
compiler->imm &= 0x1f;
|
|
236
|
-
FAIL_IF(push_inst(compiler, SRAWI | RC(flags) | S(src1) | A(dst) | (compiler->imm << 11)));
|
|
237
|
-
}
|
|
238
|
-
else
|
|
239
|
-
FAIL_IF(push_inst(compiler, SRAW | RC(flags) | S(src1) | A(dst) | B(src2)));
|
|
240
|
-
return (flags & ALT_FORM3) ? push_inst(compiler, MTXER | S(0)) : SLJIT_SUCCESS;
|
|
241
|
-
}
|
|
242
|
-
|
|
243
|
-
SLJIT_ASSERT_STOP();
|
|
244
|
-
return SLJIT_SUCCESS;
|
|
245
|
-
}
|
|
246
|
-
|
|
247
|
-
static SLJIT_INLINE sljit_si emit_const(struct sljit_compiler *compiler, sljit_si reg, sljit_sw init_value)
|
|
248
|
-
{
|
|
249
|
-
FAIL_IF(push_inst(compiler, ADDIS | D(reg) | A(0) | IMM(init_value >> 16)));
|
|
250
|
-
return push_inst(compiler, ORI | S(reg) | A(reg) | IMM(init_value));
|
|
251
|
-
}
|
|
252
|
-
|
|
253
|
-
SLJIT_API_FUNC_ATTRIBUTE void sljit_set_jump_addr(sljit_uw addr, sljit_uw new_addr)
|
|
254
|
-
{
|
|
255
|
-
sljit_ins *inst = (sljit_ins*)addr;
|
|
256
|
-
|
|
257
|
-
inst[0] = (inst[0] & 0xffff0000) | ((new_addr >> 16) & 0xffff);
|
|
258
|
-
inst[1] = (inst[1] & 0xffff0000) | (new_addr & 0xffff);
|
|
259
|
-
SLJIT_CACHE_FLUSH(inst, inst + 2);
|
|
260
|
-
}
|
|
261
|
-
|
|
262
|
-
SLJIT_API_FUNC_ATTRIBUTE void sljit_set_const(sljit_uw addr, sljit_sw new_constant)
|
|
263
|
-
{
|
|
264
|
-
sljit_ins *inst = (sljit_ins*)addr;
|
|
265
|
-
|
|
266
|
-
inst[0] = (inst[0] & 0xffff0000) | ((new_constant >> 16) & 0xffff);
|
|
267
|
-
inst[1] = (inst[1] & 0xffff0000) | (new_constant & 0xffff);
|
|
268
|
-
SLJIT_CACHE_FLUSH(inst, inst + 2);
|
|
269
|
-
}
|
|
@@ -1,421 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* Stack-less Just-In-Time compiler
|
|
3
|
-
*
|
|
4
|
-
* Copyright 2009-2012 Zoltan Herczeg (hzmester@freemail.hu). All rights reserved.
|
|
5
|
-
*
|
|
6
|
-
* Redistribution and use in source and binary forms, with or without modification, are
|
|
7
|
-
* permitted provided that the following conditions are met:
|
|
8
|
-
*
|
|
9
|
-
* 1. Redistributions of source code must retain the above copyright notice, this list of
|
|
10
|
-
* conditions and the following disclaimer.
|
|
11
|
-
*
|
|
12
|
-
* 2. Redistributions in binary form must reproduce the above copyright notice, this list
|
|
13
|
-
* of conditions and the following disclaimer in the documentation and/or other materials
|
|
14
|
-
* provided with the distribution.
|
|
15
|
-
*
|
|
16
|
-
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDER(S) AND CONTRIBUTORS ``AS IS'' AND ANY
|
|
17
|
-
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
|
|
18
|
-
* OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT
|
|
19
|
-
* SHALL THE COPYRIGHT HOLDER(S) OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
|
|
20
|
-
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
|
|
21
|
-
* TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
|
|
22
|
-
* BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
|
23
|
-
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
|
|
24
|
-
* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
25
|
-
*/
|
|
26
|
-
|
|
27
|
-
/* ppc 64-bit arch dependent functions. */
|
|
28
|
-
|
|
29
|
-
#if defined(__GNUC__) || (defined(__IBM_GCC_ASM) && __IBM_GCC_ASM)
|
|
30
|
-
#define ASM_SLJIT_CLZ(src, dst) \
|
|
31
|
-
__asm__ volatile ( "cntlzd %0, %1" : "=r"(dst) : "r"(src) )
|
|
32
|
-
#elif defined(__xlc__)
|
|
33
|
-
#error "Please enable GCC syntax for inline assembly statements"
|
|
34
|
-
#else
|
|
35
|
-
#error "Must implement count leading zeroes"
|
|
36
|
-
#endif
|
|
37
|
-
|
|
38
|
-
#define RLDI(dst, src, sh, mb, type) \
|
|
39
|
-
(HI(30) | S(src) | A(dst) | ((type) << 2) | (((sh) & 0x1f) << 11) | (((sh) & 0x20) >> 4) | (((mb) & 0x1f) << 6) | ((mb) & 0x20))
|
|
40
|
-
|
|
41
|
-
#define PUSH_RLDICR(reg, shift) \
|
|
42
|
-
push_inst(compiler, RLDI(reg, reg, 63 - shift, shift, 1))
|
|
43
|
-
|
|
44
|
-
static sljit_si load_immediate(struct sljit_compiler *compiler, sljit_si reg, sljit_sw imm)
|
|
45
|
-
{
|
|
46
|
-
sljit_uw tmp;
|
|
47
|
-
sljit_uw shift;
|
|
48
|
-
sljit_uw tmp2;
|
|
49
|
-
sljit_uw shift2;
|
|
50
|
-
|
|
51
|
-
if (imm <= SIMM_MAX && imm >= SIMM_MIN)
|
|
52
|
-
return push_inst(compiler, ADDI | D(reg) | A(0) | IMM(imm));
|
|
53
|
-
|
|
54
|
-
if (!(imm & ~0xffff))
|
|
55
|
-
return push_inst(compiler, ORI | S(ZERO_REG) | A(reg) | IMM(imm));
|
|
56
|
-
|
|
57
|
-
if (imm <= SLJIT_W(0x7fffffff) && imm >= SLJIT_W(-0x80000000)) {
|
|
58
|
-
FAIL_IF(push_inst(compiler, ADDIS | D(reg) | A(0) | IMM(imm >> 16)));
|
|
59
|
-
return (imm & 0xffff) ? push_inst(compiler, ORI | S(reg) | A(reg) | IMM(imm)) : SLJIT_SUCCESS;
|
|
60
|
-
}
|
|
61
|
-
|
|
62
|
-
/* Count leading zeroes. */
|
|
63
|
-
tmp = (imm >= 0) ? imm : ~imm;
|
|
64
|
-
ASM_SLJIT_CLZ(tmp, shift);
|
|
65
|
-
SLJIT_ASSERT(shift > 0);
|
|
66
|
-
shift--;
|
|
67
|
-
tmp = (imm << shift);
|
|
68
|
-
|
|
69
|
-
if ((tmp & ~0xffff000000000000ul) == 0) {
|
|
70
|
-
FAIL_IF(push_inst(compiler, ADDI | D(reg) | A(0) | IMM(tmp >> 48)));
|
|
71
|
-
shift += 15;
|
|
72
|
-
return PUSH_RLDICR(reg, shift);
|
|
73
|
-
}
|
|
74
|
-
|
|
75
|
-
if ((tmp & ~0xffffffff00000000ul) == 0) {
|
|
76
|
-
FAIL_IF(push_inst(compiler, ADDIS | D(reg) | A(0) | IMM(tmp >> 48)));
|
|
77
|
-
FAIL_IF(push_inst(compiler, ORI | S(reg) | A(reg) | IMM(tmp >> 32)));
|
|
78
|
-
shift += 31;
|
|
79
|
-
return PUSH_RLDICR(reg, shift);
|
|
80
|
-
}
|
|
81
|
-
|
|
82
|
-
/* Cut out the 16 bit from immediate. */
|
|
83
|
-
shift += 15;
|
|
84
|
-
tmp2 = imm & ((1ul << (63 - shift)) - 1);
|
|
85
|
-
|
|
86
|
-
if (tmp2 <= 0xffff) {
|
|
87
|
-
FAIL_IF(push_inst(compiler, ADDI | D(reg) | A(0) | IMM(tmp >> 48)));
|
|
88
|
-
FAIL_IF(PUSH_RLDICR(reg, shift));
|
|
89
|
-
return push_inst(compiler, ORI | S(reg) | A(reg) | tmp2);
|
|
90
|
-
}
|
|
91
|
-
|
|
92
|
-
if (tmp2 <= 0xffffffff) {
|
|
93
|
-
FAIL_IF(push_inst(compiler, ADDI | D(reg) | A(0) | IMM(tmp >> 48)));
|
|
94
|
-
FAIL_IF(PUSH_RLDICR(reg, shift));
|
|
95
|
-
FAIL_IF(push_inst(compiler, ORIS | S(reg) | A(reg) | (tmp2 >> 16)));
|
|
96
|
-
return (imm & 0xffff) ? push_inst(compiler, ORI | S(reg) | A(reg) | IMM(tmp2)) : SLJIT_SUCCESS;
|
|
97
|
-
}
|
|
98
|
-
|
|
99
|
-
ASM_SLJIT_CLZ(tmp2, shift2);
|
|
100
|
-
tmp2 <<= shift2;
|
|
101
|
-
|
|
102
|
-
if ((tmp2 & ~0xffff000000000000ul) == 0) {
|
|
103
|
-
FAIL_IF(push_inst(compiler, ADDI | D(reg) | A(0) | IMM(tmp >> 48)));
|
|
104
|
-
shift2 += 15;
|
|
105
|
-
shift += (63 - shift2);
|
|
106
|
-
FAIL_IF(PUSH_RLDICR(reg, shift));
|
|
107
|
-
FAIL_IF(push_inst(compiler, ORI | S(reg) | A(reg) | (tmp2 >> 48)));
|
|
108
|
-
return PUSH_RLDICR(reg, shift2);
|
|
109
|
-
}
|
|
110
|
-
|
|
111
|
-
/* The general version. */
|
|
112
|
-
FAIL_IF(push_inst(compiler, ADDIS | D(reg) | A(0) | IMM(imm >> 48)));
|
|
113
|
-
FAIL_IF(push_inst(compiler, ORI | S(reg) | A(reg) | IMM(imm >> 32)));
|
|
114
|
-
FAIL_IF(PUSH_RLDICR(reg, 31));
|
|
115
|
-
FAIL_IF(push_inst(compiler, ORIS | S(reg) | A(reg) | IMM(imm >> 16)));
|
|
116
|
-
return push_inst(compiler, ORI | S(reg) | A(reg) | IMM(imm));
|
|
117
|
-
}
|
|
118
|
-
|
|
119
|
-
/* Simplified mnemonics: clrldi. */
|
|
120
|
-
#define INS_CLEAR_LEFT(dst, src, from) \
|
|
121
|
-
(RLDICL | S(src) | A(dst) | ((from) << 6) | (1 << 5))
|
|
122
|
-
|
|
123
|
-
/* Sign extension for integer operations. */
|
|
124
|
-
#define UN_EXTS() \
|
|
125
|
-
if ((flags & (ALT_SIGN_EXT | REG2_SOURCE)) == (ALT_SIGN_EXT | REG2_SOURCE)) { \
|
|
126
|
-
FAIL_IF(push_inst(compiler, EXTSW | S(src2) | A(TMP_REG2))); \
|
|
127
|
-
src2 = TMP_REG2; \
|
|
128
|
-
}
|
|
129
|
-
|
|
130
|
-
#define BIN_EXTS() \
|
|
131
|
-
if (flags & ALT_SIGN_EXT) { \
|
|
132
|
-
if (flags & REG1_SOURCE) { \
|
|
133
|
-
FAIL_IF(push_inst(compiler, EXTSW | S(src1) | A(TMP_REG1))); \
|
|
134
|
-
src1 = TMP_REG1; \
|
|
135
|
-
} \
|
|
136
|
-
if (flags & REG2_SOURCE) { \
|
|
137
|
-
FAIL_IF(push_inst(compiler, EXTSW | S(src2) | A(TMP_REG2))); \
|
|
138
|
-
src2 = TMP_REG2; \
|
|
139
|
-
} \
|
|
140
|
-
}
|
|
141
|
-
|
|
142
|
-
#define BIN_IMM_EXTS() \
|
|
143
|
-
if ((flags & (ALT_SIGN_EXT | REG1_SOURCE)) == (ALT_SIGN_EXT | REG1_SOURCE)) { \
|
|
144
|
-
FAIL_IF(push_inst(compiler, EXTSW | S(src1) | A(TMP_REG1))); \
|
|
145
|
-
src1 = TMP_REG1; \
|
|
146
|
-
}
|
|
147
|
-
|
|
148
|
-
static SLJIT_INLINE sljit_si emit_single_op(struct sljit_compiler *compiler, sljit_si op, sljit_si flags,
|
|
149
|
-
sljit_si dst, sljit_si src1, sljit_si src2)
|
|
150
|
-
{
|
|
151
|
-
switch (op) {
|
|
152
|
-
case SLJIT_MOV:
|
|
153
|
-
case SLJIT_MOV_P:
|
|
154
|
-
SLJIT_ASSERT(src1 == TMP_REG1);
|
|
155
|
-
if (dst != src2)
|
|
156
|
-
return push_inst(compiler, OR | S(src2) | A(dst) | B(src2));
|
|
157
|
-
return SLJIT_SUCCESS;
|
|
158
|
-
|
|
159
|
-
case SLJIT_MOV_UI:
|
|
160
|
-
case SLJIT_MOV_SI:
|
|
161
|
-
SLJIT_ASSERT(src1 == TMP_REG1);
|
|
162
|
-
if ((flags & (REG_DEST | REG2_SOURCE)) == (REG_DEST | REG2_SOURCE)) {
|
|
163
|
-
if (op == SLJIT_MOV_SI)
|
|
164
|
-
return push_inst(compiler, EXTSW | S(src2) | A(dst));
|
|
165
|
-
return push_inst(compiler, INS_CLEAR_LEFT(dst, src2, 0));
|
|
166
|
-
}
|
|
167
|
-
else {
|
|
168
|
-
SLJIT_ASSERT(dst == src2);
|
|
169
|
-
}
|
|
170
|
-
return SLJIT_SUCCESS;
|
|
171
|
-
|
|
172
|
-
case SLJIT_MOV_UB:
|
|
173
|
-
case SLJIT_MOV_SB:
|
|
174
|
-
SLJIT_ASSERT(src1 == TMP_REG1);
|
|
175
|
-
if ((flags & (REG_DEST | REG2_SOURCE)) == (REG_DEST | REG2_SOURCE)) {
|
|
176
|
-
if (op == SLJIT_MOV_SB)
|
|
177
|
-
return push_inst(compiler, EXTSB | S(src2) | A(dst));
|
|
178
|
-
return push_inst(compiler, INS_CLEAR_LEFT(dst, src2, 24));
|
|
179
|
-
}
|
|
180
|
-
else if ((flags & REG_DEST) && op == SLJIT_MOV_SB)
|
|
181
|
-
return push_inst(compiler, EXTSB | S(src2) | A(dst));
|
|
182
|
-
else {
|
|
183
|
-
SLJIT_ASSERT(dst == src2);
|
|
184
|
-
}
|
|
185
|
-
return SLJIT_SUCCESS;
|
|
186
|
-
|
|
187
|
-
case SLJIT_MOV_UH:
|
|
188
|
-
case SLJIT_MOV_SH:
|
|
189
|
-
SLJIT_ASSERT(src1 == TMP_REG1);
|
|
190
|
-
if ((flags & (REG_DEST | REG2_SOURCE)) == (REG_DEST | REG2_SOURCE)) {
|
|
191
|
-
if (op == SLJIT_MOV_SH)
|
|
192
|
-
return push_inst(compiler, EXTSH | S(src2) | A(dst));
|
|
193
|
-
return push_inst(compiler, INS_CLEAR_LEFT(dst, src2, 16));
|
|
194
|
-
}
|
|
195
|
-
else {
|
|
196
|
-
SLJIT_ASSERT(dst == src2);
|
|
197
|
-
}
|
|
198
|
-
return SLJIT_SUCCESS;
|
|
199
|
-
|
|
200
|
-
case SLJIT_NOT:
|
|
201
|
-
SLJIT_ASSERT(src1 == TMP_REG1);
|
|
202
|
-
UN_EXTS();
|
|
203
|
-
return push_inst(compiler, NOR | RC(flags) | S(src2) | A(dst) | B(src2));
|
|
204
|
-
|
|
205
|
-
case SLJIT_NEG:
|
|
206
|
-
SLJIT_ASSERT(src1 == TMP_REG1);
|
|
207
|
-
UN_EXTS();
|
|
208
|
-
return push_inst(compiler, NEG | OERC(flags) | D(dst) | A(src2));
|
|
209
|
-
|
|
210
|
-
case SLJIT_CLZ:
|
|
211
|
-
SLJIT_ASSERT(src1 == TMP_REG1);
|
|
212
|
-
if (flags & ALT_FORM1)
|
|
213
|
-
return push_inst(compiler, CNTLZW | RC(flags) | S(src2) | A(dst));
|
|
214
|
-
return push_inst(compiler, CNTLZD | RC(flags) | S(src2) | A(dst));
|
|
215
|
-
|
|
216
|
-
case SLJIT_ADD:
|
|
217
|
-
if (flags & ALT_FORM1) {
|
|
218
|
-
/* Flags does not set: BIN_IMM_EXTS unnecessary. */
|
|
219
|
-
SLJIT_ASSERT(src2 == TMP_REG2);
|
|
220
|
-
return push_inst(compiler, ADDI | D(dst) | A(src1) | compiler->imm);
|
|
221
|
-
}
|
|
222
|
-
if (flags & ALT_FORM2) {
|
|
223
|
-
/* Flags does not set: BIN_IMM_EXTS unnecessary. */
|
|
224
|
-
SLJIT_ASSERT(src2 == TMP_REG2);
|
|
225
|
-
return push_inst(compiler, ADDIS | D(dst) | A(src1) | compiler->imm);
|
|
226
|
-
}
|
|
227
|
-
if (flags & ALT_FORM3) {
|
|
228
|
-
SLJIT_ASSERT(src2 == TMP_REG2);
|
|
229
|
-
BIN_IMM_EXTS();
|
|
230
|
-
return push_inst(compiler, ADDIC | D(dst) | A(src1) | compiler->imm);
|
|
231
|
-
}
|
|
232
|
-
if (flags & ALT_FORM4) {
|
|
233
|
-
/* Flags does not set: BIN_IMM_EXTS unnecessary. */
|
|
234
|
-
FAIL_IF(push_inst(compiler, ADDI | D(dst) | A(src1) | (compiler->imm & 0xffff)));
|
|
235
|
-
return push_inst(compiler, ADDIS | D(dst) | A(dst) | (((compiler->imm >> 16) & 0xffff) + ((compiler->imm >> 15) & 0x1)));
|
|
236
|
-
}
|
|
237
|
-
if (!(flags & ALT_SET_FLAGS))
|
|
238
|
-
return push_inst(compiler, ADD | D(dst) | A(src1) | B(src2));
|
|
239
|
-
BIN_EXTS();
|
|
240
|
-
return push_inst(compiler, ADDC | OERC(ALT_SET_FLAGS) | D(dst) | A(src1) | B(src2));
|
|
241
|
-
|
|
242
|
-
case SLJIT_ADDC:
|
|
243
|
-
if (flags & ALT_FORM1) {
|
|
244
|
-
FAIL_IF(push_inst(compiler, MFXER | D(0)));
|
|
245
|
-
FAIL_IF(push_inst(compiler, ADDE | D(dst) | A(src1) | B(src2)));
|
|
246
|
-
return push_inst(compiler, MTXER | S(0));
|
|
247
|
-
}
|
|
248
|
-
BIN_EXTS();
|
|
249
|
-
return push_inst(compiler, ADDE | D(dst) | A(src1) | B(src2));
|
|
250
|
-
|
|
251
|
-
case SLJIT_SUB:
|
|
252
|
-
if (flags & ALT_FORM1) {
|
|
253
|
-
/* Flags does not set: BIN_IMM_EXTS unnecessary. */
|
|
254
|
-
SLJIT_ASSERT(src2 == TMP_REG2);
|
|
255
|
-
return push_inst(compiler, SUBFIC | D(dst) | A(src1) | compiler->imm);
|
|
256
|
-
}
|
|
257
|
-
if (flags & (ALT_FORM2 | ALT_FORM3)) {
|
|
258
|
-
SLJIT_ASSERT(src2 == TMP_REG2);
|
|
259
|
-
if (flags & ALT_FORM2)
|
|
260
|
-
FAIL_IF(push_inst(compiler, CMPI | CRD(0 | ((flags & ALT_SIGN_EXT) ? 0 : 1)) | A(src1) | compiler->imm));
|
|
261
|
-
if (flags & ALT_FORM3)
|
|
262
|
-
return push_inst(compiler, CMPLI | CRD(4 | ((flags & ALT_SIGN_EXT) ? 0 : 1)) | A(src1) | compiler->imm);
|
|
263
|
-
return SLJIT_SUCCESS;
|
|
264
|
-
}
|
|
265
|
-
if (flags & (ALT_FORM4 | ALT_FORM5)) {
|
|
266
|
-
if (flags & ALT_FORM4)
|
|
267
|
-
FAIL_IF(push_inst(compiler, CMPL | CRD(4 | ((flags & ALT_SIGN_EXT) ? 0 : 1)) | A(src1) | B(src2)));
|
|
268
|
-
if (flags & ALT_FORM5)
|
|
269
|
-
return push_inst(compiler, CMP | CRD(0 | ((flags & ALT_SIGN_EXT) ? 0 : 1)) | A(src1) | B(src2));
|
|
270
|
-
return SLJIT_SUCCESS;
|
|
271
|
-
}
|
|
272
|
-
if (!(flags & ALT_SET_FLAGS))
|
|
273
|
-
return push_inst(compiler, SUBF | D(dst) | A(src2) | B(src1));
|
|
274
|
-
BIN_EXTS();
|
|
275
|
-
if (flags & ALT_FORM6)
|
|
276
|
-
FAIL_IF(push_inst(compiler, CMPL | CRD(4 | ((flags & ALT_SIGN_EXT) ? 0 : 1)) | A(src1) | B(src2)));
|
|
277
|
-
return push_inst(compiler, SUBFC | OERC(ALT_SET_FLAGS) | D(dst) | A(src2) | B(src1));
|
|
278
|
-
|
|
279
|
-
case SLJIT_SUBC:
|
|
280
|
-
if (flags & ALT_FORM1) {
|
|
281
|
-
FAIL_IF(push_inst(compiler, MFXER | D(0)));
|
|
282
|
-
FAIL_IF(push_inst(compiler, SUBFE | D(dst) | A(src2) | B(src1)));
|
|
283
|
-
return push_inst(compiler, MTXER | S(0));
|
|
284
|
-
}
|
|
285
|
-
BIN_EXTS();
|
|
286
|
-
return push_inst(compiler, SUBFE | D(dst) | A(src2) | B(src1));
|
|
287
|
-
|
|
288
|
-
case SLJIT_MUL:
|
|
289
|
-
if (flags & ALT_FORM1) {
|
|
290
|
-
SLJIT_ASSERT(src2 == TMP_REG2);
|
|
291
|
-
return push_inst(compiler, MULLI | D(dst) | A(src1) | compiler->imm);
|
|
292
|
-
}
|
|
293
|
-
BIN_EXTS();
|
|
294
|
-
if (flags & ALT_FORM2)
|
|
295
|
-
return push_inst(compiler, MULLW | OERC(flags) | D(dst) | A(src2) | B(src1));
|
|
296
|
-
return push_inst(compiler, MULLD | OERC(flags) | D(dst) | A(src2) | B(src1));
|
|
297
|
-
|
|
298
|
-
case SLJIT_AND:
|
|
299
|
-
if (flags & ALT_FORM1) {
|
|
300
|
-
SLJIT_ASSERT(src2 == TMP_REG2);
|
|
301
|
-
return push_inst(compiler, ANDI | S(src1) | A(dst) | compiler->imm);
|
|
302
|
-
}
|
|
303
|
-
if (flags & ALT_FORM2) {
|
|
304
|
-
SLJIT_ASSERT(src2 == TMP_REG2);
|
|
305
|
-
return push_inst(compiler, ANDIS | S(src1) | A(dst) | compiler->imm);
|
|
306
|
-
}
|
|
307
|
-
return push_inst(compiler, AND | RC(flags) | S(src1) | A(dst) | B(src2));
|
|
308
|
-
|
|
309
|
-
case SLJIT_OR:
|
|
310
|
-
if (flags & ALT_FORM1) {
|
|
311
|
-
SLJIT_ASSERT(src2 == TMP_REG2);
|
|
312
|
-
return push_inst(compiler, ORI | S(src1) | A(dst) | compiler->imm);
|
|
313
|
-
}
|
|
314
|
-
if (flags & ALT_FORM2) {
|
|
315
|
-
SLJIT_ASSERT(src2 == TMP_REG2);
|
|
316
|
-
return push_inst(compiler, ORIS | S(src1) | A(dst) | compiler->imm);
|
|
317
|
-
}
|
|
318
|
-
if (flags & ALT_FORM3) {
|
|
319
|
-
SLJIT_ASSERT(src2 == TMP_REG2);
|
|
320
|
-
FAIL_IF(push_inst(compiler, ORI | S(src1) | A(dst) | IMM(compiler->imm)));
|
|
321
|
-
return push_inst(compiler, ORIS | S(dst) | A(dst) | IMM(compiler->imm >> 16));
|
|
322
|
-
}
|
|
323
|
-
return push_inst(compiler, OR | RC(flags) | S(src1) | A(dst) | B(src2));
|
|
324
|
-
|
|
325
|
-
case SLJIT_XOR:
|
|
326
|
-
if (flags & ALT_FORM1) {
|
|
327
|
-
SLJIT_ASSERT(src2 == TMP_REG2);
|
|
328
|
-
return push_inst(compiler, XORI | S(src1) | A(dst) | compiler->imm);
|
|
329
|
-
}
|
|
330
|
-
if (flags & ALT_FORM2) {
|
|
331
|
-
SLJIT_ASSERT(src2 == TMP_REG2);
|
|
332
|
-
return push_inst(compiler, XORIS | S(src1) | A(dst) | compiler->imm);
|
|
333
|
-
}
|
|
334
|
-
if (flags & ALT_FORM3) {
|
|
335
|
-
SLJIT_ASSERT(src2 == TMP_REG2);
|
|
336
|
-
FAIL_IF(push_inst(compiler, XORI | S(src1) | A(dst) | IMM(compiler->imm)));
|
|
337
|
-
return push_inst(compiler, XORIS | S(dst) | A(dst) | IMM(compiler->imm >> 16));
|
|
338
|
-
}
|
|
339
|
-
return push_inst(compiler, XOR | RC(flags) | S(src1) | A(dst) | B(src2));
|
|
340
|
-
|
|
341
|
-
case SLJIT_SHL:
|
|
342
|
-
if (flags & ALT_FORM1) {
|
|
343
|
-
SLJIT_ASSERT(src2 == TMP_REG2);
|
|
344
|
-
if (flags & ALT_FORM2) {
|
|
345
|
-
compiler->imm &= 0x1f;
|
|
346
|
-
return push_inst(compiler, RLWINM | RC(flags) | S(src1) | A(dst) | (compiler->imm << 11) | ((31 - compiler->imm) << 1));
|
|
347
|
-
}
|
|
348
|
-
else {
|
|
349
|
-
compiler->imm &= 0x3f;
|
|
350
|
-
return push_inst(compiler, RLDI(dst, src1, compiler->imm, 63 - compiler->imm, 1) | RC(flags));
|
|
351
|
-
}
|
|
352
|
-
}
|
|
353
|
-
return push_inst(compiler, ((flags & ALT_FORM2) ? SLW : SLD) | RC(flags) | S(src1) | A(dst) | B(src2));
|
|
354
|
-
|
|
355
|
-
case SLJIT_LSHR:
|
|
356
|
-
if (flags & ALT_FORM1) {
|
|
357
|
-
SLJIT_ASSERT(src2 == TMP_REG2);
|
|
358
|
-
if (flags & ALT_FORM2) {
|
|
359
|
-
compiler->imm &= 0x1f;
|
|
360
|
-
return push_inst(compiler, RLWINM | RC(flags) | S(src1) | A(dst) | (((32 - compiler->imm) & 0x1f) << 11) | (compiler->imm << 6) | (31 << 1));
|
|
361
|
-
}
|
|
362
|
-
else {
|
|
363
|
-
compiler->imm &= 0x3f;
|
|
364
|
-
return push_inst(compiler, RLDI(dst, src1, 64 - compiler->imm, compiler->imm, 0) | RC(flags));
|
|
365
|
-
}
|
|
366
|
-
}
|
|
367
|
-
return push_inst(compiler, ((flags & ALT_FORM2) ? SRW : SRD) | RC(flags) | S(src1) | A(dst) | B(src2));
|
|
368
|
-
|
|
369
|
-
case SLJIT_ASHR:
|
|
370
|
-
if (flags & ALT_FORM3)
|
|
371
|
-
FAIL_IF(push_inst(compiler, MFXER | D(0)));
|
|
372
|
-
if (flags & ALT_FORM1) {
|
|
373
|
-
SLJIT_ASSERT(src2 == TMP_REG2);
|
|
374
|
-
if (flags & ALT_FORM2) {
|
|
375
|
-
compiler->imm &= 0x1f;
|
|
376
|
-
FAIL_IF(push_inst(compiler, SRAWI | RC(flags) | S(src1) | A(dst) | (compiler->imm << 11)));
|
|
377
|
-
}
|
|
378
|
-
else {
|
|
379
|
-
compiler->imm &= 0x3f;
|
|
380
|
-
FAIL_IF(push_inst(compiler, SRADI | RC(flags) | S(src1) | A(dst) | ((compiler->imm & 0x1f) << 11) | ((compiler->imm & 0x20) >> 4)));
|
|
381
|
-
}
|
|
382
|
-
}
|
|
383
|
-
else
|
|
384
|
-
FAIL_IF(push_inst(compiler, ((flags & ALT_FORM2) ? SRAW : SRAD) | RC(flags) | S(src1) | A(dst) | B(src2)));
|
|
385
|
-
return (flags & ALT_FORM3) ? push_inst(compiler, MTXER | S(0)) : SLJIT_SUCCESS;
|
|
386
|
-
}
|
|
387
|
-
|
|
388
|
-
SLJIT_ASSERT_STOP();
|
|
389
|
-
return SLJIT_SUCCESS;
|
|
390
|
-
}
|
|
391
|
-
|
|
392
|
-
static SLJIT_INLINE sljit_si emit_const(struct sljit_compiler *compiler, sljit_si reg, sljit_sw init_value)
|
|
393
|
-
{
|
|
394
|
-
FAIL_IF(push_inst(compiler, ADDIS | D(reg) | A(0) | IMM(init_value >> 48)));
|
|
395
|
-
FAIL_IF(push_inst(compiler, ORI | S(reg) | A(reg) | IMM(init_value >> 32)));
|
|
396
|
-
FAIL_IF(PUSH_RLDICR(reg, 31));
|
|
397
|
-
FAIL_IF(push_inst(compiler, ORIS | S(reg) | A(reg) | IMM(init_value >> 16)));
|
|
398
|
-
return push_inst(compiler, ORI | S(reg) | A(reg) | IMM(init_value));
|
|
399
|
-
}
|
|
400
|
-
|
|
401
|
-
SLJIT_API_FUNC_ATTRIBUTE void sljit_set_jump_addr(sljit_uw addr, sljit_uw new_addr)
|
|
402
|
-
{
|
|
403
|
-
sljit_ins *inst = (sljit_ins*)addr;
|
|
404
|
-
|
|
405
|
-
inst[0] = (inst[0] & 0xffff0000) | ((new_addr >> 48) & 0xffff);
|
|
406
|
-
inst[1] = (inst[1] & 0xffff0000) | ((new_addr >> 32) & 0xffff);
|
|
407
|
-
inst[3] = (inst[3] & 0xffff0000) | ((new_addr >> 16) & 0xffff);
|
|
408
|
-
inst[4] = (inst[4] & 0xffff0000) | (new_addr & 0xffff);
|
|
409
|
-
SLJIT_CACHE_FLUSH(inst, inst + 5);
|
|
410
|
-
}
|
|
411
|
-
|
|
412
|
-
SLJIT_API_FUNC_ATTRIBUTE void sljit_set_const(sljit_uw addr, sljit_sw new_constant)
|
|
413
|
-
{
|
|
414
|
-
sljit_ins *inst = (sljit_ins*)addr;
|
|
415
|
-
|
|
416
|
-
inst[0] = (inst[0] & 0xffff0000) | ((new_constant >> 48) & 0xffff);
|
|
417
|
-
inst[1] = (inst[1] & 0xffff0000) | ((new_constant >> 32) & 0xffff);
|
|
418
|
-
inst[3] = (inst[3] & 0xffff0000) | ((new_constant >> 16) & 0xffff);
|
|
419
|
-
inst[4] = (inst[4] & 0xffff0000) | (new_constant & 0xffff);
|
|
420
|
-
SLJIT_CACHE_FLUSH(inst, inst + 5);
|
|
421
|
-
}
|