Mercurial > pub > dyncall > dyncall
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 } |