# HG changeset patch # User Kaito Tokumori # Date 1453650517 -32400 # Node ID ead7c2743f0e1d5c312f2c3fdbef56f1bdb66d10 # Parent bec7f99b60b5b7c35ec144e150282f834bcf0728 return value is correct diff -r bec7f99b60b5 -r ead7c2743f0e asmtest2.c --- a/asmtest2.c Sun Jan 24 06:03:01 2016 +0900 +++ b/asmtest2.c Mon Jan 25 00:48:37 2016 +0900 @@ -27,8 +27,11 @@ __code print(int n,int result,int orig,__code(*print)(),__code (*exit1)(int, void*),void*exit1env) { printf("#0032:%d! = %d\n",orig, result); - asm volatile("movq 0x8(%%rdi), %%rbp;" - "movq 0x10(%%rdi), %%rsp;" - "jmpq *0x38(%%rdi);" - ::"D"(((struct __CbC_env *)exit1env)->env)); + asm volatile("movq (%%rdi), %%r10;" + "movq $100, (%%r10);" + "movq 0x18(%%rdi), %%rbp;" + "movq 0x20(%%rdi), %%rsp;" + "jmpq *0x48(%%rdi);" + :"+D"(exit1env)::"r10" + ); }