comparison dyncall/dyncall_callvm_x86.c @ 341:ab2d78e48ca2

- gen-masm . fallback on clang if gcc not available . consolidated use of redundant scripts . regen of portasm based masm files - minor symbol name changes for clarity/consistency
author Tassilo Philipp
date Sat, 04 Jan 2020 23:00:02 +0100
parents 4f9f49fb82ce
children 1d03a3a4220d
comparison
equal deleted inserted replaced
340:6e33db95e724 341:ab2d78e48ca2
497 497
498 /* --- syscall ------------------------------------------------------------- */ 498 /* --- syscall ------------------------------------------------------------- */
499 499
500 /* call syscall */ 500 /* call syscall */
501 501
502 void dc_callvm_call_x86_sys_int80h_linux(DCCallVM* in_self, DCpointer target) 502 void dc_callvm_call_x86_syscall_int80h_linux(DCCallVM* in_self, DCpointer target)
503 { 503 {
504 DCCallVM_x86* self = (DCCallVM_x86*) in_self; 504 DCCallVM_x86* self = (DCCallVM_x86*) in_self;
505 dcCall_x86_sys_int80h_linux( target, dcVecData(&self->mVecHead), dcVecSize(&self->mVecHead) ); 505 dcCall_x86_syscall_int80h_linux( target, dcVecData(&self->mVecHead), dcVecSize(&self->mVecHead) );
506 } 506 }
507 507
508 void dc_callvm_call_x86_sys_int80h_bsd(DCCallVM* in_self, DCpointer target) 508 void dc_callvm_call_x86_syscall_int80h_bsd(DCCallVM* in_self, DCpointer target)
509 { 509 {
510 DCCallVM_x86* self = (DCCallVM_x86*) in_self; 510 DCCallVM_x86* self = (DCCallVM_x86*) in_self;
511 dcCall_x86_sys_int80h_bsd( target, dcVecData(&self->mVecHead), dcVecSize(&self->mVecHead) ); 511 dcCall_x86_syscall_int80h_bsd( target, dcVecData(&self->mVecHead), dcVecSize(&self->mVecHead) );
512 } 512 }
513 513
514 DCCallVM_vt gVT_x86_sys_int80h_linux = 514 DCCallVM_vt gVT_x86_syscall_int80h_linux =
515 { 515 {
516 &dc_callvm_free_x86 516 &dc_callvm_free_x86
517 , &dc_callvm_reset_x86 517 , &dc_callvm_reset_x86
518 , &dc_callvm_mode_x86 518 , &dc_callvm_mode_x86
519 , &dc_callvm_argBool_x86 519 , &dc_callvm_argBool_x86
524 , &dc_callvm_argLongLong_x86 524 , &dc_callvm_argLongLong_x86
525 , &dc_callvm_argFloat_x86 525 , &dc_callvm_argFloat_x86
526 , &dc_callvm_argDouble_x86 526 , &dc_callvm_argDouble_x86
527 , &dc_callvm_argPointer_x86 527 , &dc_callvm_argPointer_x86
528 , NULL /* argStruct */ 528 , NULL /* argStruct */
529 , (DCvoidvmfunc*) &dc_callvm_call_x86_sys_int80h_linux 529 , (DCvoidvmfunc*) &dc_callvm_call_x86_syscall_int80h_linux
530 , (DCboolvmfunc*) &dc_callvm_call_x86_sys_int80h_linux 530 , (DCboolvmfunc*) &dc_callvm_call_x86_syscall_int80h_linux
531 , (DCcharvmfunc*) &dc_callvm_call_x86_sys_int80h_linux 531 , (DCcharvmfunc*) &dc_callvm_call_x86_syscall_int80h_linux
532 , (DCshortvmfunc*) &dc_callvm_call_x86_sys_int80h_linux 532 , (DCshortvmfunc*) &dc_callvm_call_x86_syscall_int80h_linux
533 , (DCintvmfunc*) &dc_callvm_call_x86_sys_int80h_linux 533 , (DCintvmfunc*) &dc_callvm_call_x86_syscall_int80h_linux
534 , (DClongvmfunc*) &dc_callvm_call_x86_sys_int80h_linux 534 , (DClongvmfunc*) &dc_callvm_call_x86_syscall_int80h_linux
535 , (DClonglongvmfunc*) &dc_callvm_call_x86_sys_int80h_linux 535 , (DClonglongvmfunc*) &dc_callvm_call_x86_syscall_int80h_linux
536 , (DCfloatvmfunc*) &dc_callvm_call_x86_sys_int80h_linux 536 , (DCfloatvmfunc*) &dc_callvm_call_x86_syscall_int80h_linux
537 , (DCdoublevmfunc*) &dc_callvm_call_x86_sys_int80h_linux 537 , (DCdoublevmfunc*) &dc_callvm_call_x86_syscall_int80h_linux
538 , (DCpointervmfunc*) &dc_callvm_call_x86_sys_int80h_linux 538 , (DCpointervmfunc*) &dc_callvm_call_x86_syscall_int80h_linux
539 , NULL /* callStruct */ 539 , NULL /* callStruct */
540 }; 540 };
541 541
542 DCCallVM_vt gVT_x86_sys_int80h_bsd = 542 DCCallVM_vt gVT_x86_syscall_int80h_bsd =
543 { 543 {
544 &dc_callvm_free_x86 544 &dc_callvm_free_x86
545 , &dc_callvm_reset_x86 545 , &dc_callvm_reset_x86
546 , &dc_callvm_mode_x86 546 , &dc_callvm_mode_x86
547 , &dc_callvm_argBool_x86 547 , &dc_callvm_argBool_x86
552 , &dc_callvm_argLongLong_x86 552 , &dc_callvm_argLongLong_x86
553 , &dc_callvm_argFloat_x86 553 , &dc_callvm_argFloat_x86
554 , &dc_callvm_argDouble_x86 554 , &dc_callvm_argDouble_x86
555 , &dc_callvm_argPointer_x86 555 , &dc_callvm_argPointer_x86
556 , NULL /* argStruct */ 556 , NULL /* argStruct */
557 , (DCvoidvmfunc*) &dc_callvm_call_x86_sys_int80h_bsd 557 , (DCvoidvmfunc*) &dc_callvm_call_x86_syscall_int80h_bsd
558 , (DCboolvmfunc*) &dc_callvm_call_x86_sys_int80h_bsd 558 , (DCboolvmfunc*) &dc_callvm_call_x86_syscall_int80h_bsd
559 , (DCcharvmfunc*) &dc_callvm_call_x86_sys_int80h_bsd 559 , (DCcharvmfunc*) &dc_callvm_call_x86_syscall_int80h_bsd
560 , (DCshortvmfunc*) &dc_callvm_call_x86_sys_int80h_bsd 560 , (DCshortvmfunc*) &dc_callvm_call_x86_syscall_int80h_bsd
561 , (DCintvmfunc*) &dc_callvm_call_x86_sys_int80h_bsd 561 , (DCintvmfunc*) &dc_callvm_call_x86_syscall_int80h_bsd
562 , (DClongvmfunc*) &dc_callvm_call_x86_sys_int80h_bsd 562 , (DClongvmfunc*) &dc_callvm_call_x86_syscall_int80h_bsd
563 , (DClonglongvmfunc*) &dc_callvm_call_x86_sys_int80h_bsd 563 , (DClonglongvmfunc*) &dc_callvm_call_x86_syscall_int80h_bsd
564 , (DCfloatvmfunc*) &dc_callvm_call_x86_sys_int80h_bsd 564 , (DCfloatvmfunc*) &dc_callvm_call_x86_syscall_int80h_bsd
565 , (DCdoublevmfunc*) &dc_callvm_call_x86_sys_int80h_bsd 565 , (DCdoublevmfunc*) &dc_callvm_call_x86_syscall_int80h_bsd
566 , (DCpointervmfunc*) &dc_callvm_call_x86_sys_int80h_bsd 566 , (DCpointervmfunc*) &dc_callvm_call_x86_syscall_int80h_bsd
567 , NULL /* callStruct */ 567 , NULL /* callStruct */
568 }; 568 };
569 569
570 570
571 #endif 571 #endif
593 case DC_CALL_C_X86_WIN32_FAST_GNU: vt = &gVT_x86_win32_fast_gnu; break; 593 case DC_CALL_C_X86_WIN32_FAST_GNU: vt = &gVT_x86_win32_fast_gnu; break;
594 case DC_CALL_C_X86_WIN32_THIS_GNU: vt = &gVT_x86_cdecl; break; 594 case DC_CALL_C_X86_WIN32_THIS_GNU: vt = &gVT_x86_cdecl; break;
595 case DC_CALL_SYS_DEFAULT: 595 case DC_CALL_SYS_DEFAULT:
596 # if defined DC_UNIX 596 # if defined DC_UNIX
597 # if defined DC__OS_Linux 597 # if defined DC__OS_Linux
598 vt = &gVT_x86_sys_int80h_linux; break; 598 vt = &gVT_x86_syscall_int80h_linux; break;
599 # else 599 # else
600 vt = &gVT_x86_sys_int80h_bsd; break; 600 vt = &gVT_x86_syscall_int80h_bsd; break;
601 # endif 601 # endif
602 # else 602 # else
603 self->mInterface.mError = DC_ERROR_UNSUPPORTED_MODE; return; 603 self->mInterface.mError = DC_ERROR_UNSUPPORTED_MODE; return;
604 # endif 604 # endif
605 case DC_CALL_SYS_X86_INT80H_LINUX: vt = &gVT_x86_sys_int80h_linux; break; 605 case DC_CALL_SYS_X86_INT80H_LINUX: vt = &gVT_x86_syscall_int80h_linux; break;
606 case DC_CALL_SYS_X86_INT80H_BSD: vt = &gVT_x86_sys_int80h_bsd; break; 606 case DC_CALL_SYS_X86_INT80H_BSD: vt = &gVT_x86_syscall_int80h_bsd; break;
607 #endif 607 #endif
608 default: 608 default:
609 self->mInterface.mError = DC_ERROR_UNSUPPORTED_MODE; 609 self->mInterface.mError = DC_ERROR_UNSUPPORTED_MODE;
610 return; 610 return;
611 } 611 }